diff --git a/weblate/ar.po b/weblate/ar.po index 4ad7b372ed..0983bc37f6 100644 --- a/weblate/ar.po +++ b/weblate/ar.po @@ -17,7 +17,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-05-21 11:15+0000\n" "Last-Translator: Xester \n" "Language-Team: Arabic `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "المستند الرئيسي لهذا الموقع منظم في الأقسام التالية:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "بشكل عام" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "من أين أبدء" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "الدروس التعليمية" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "التطوير" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "المجتمع" @@ -1072,363 +1076,364 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "صورة متحركة" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr "جسيمات" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "صورة متحركة" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "إنشاء المحتوى" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "إضافات" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "إنشاء المحتوى" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "أندرويد" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1891,7 +1896,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "المُعدل" @@ -2186,11 +2191,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2200,14 +2207,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2887,8 +2894,8 @@ msgstr "المجموعات" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3066,7 +3073,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4267,36 +4274,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4306,17 +4313,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4324,7 +4331,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4332,28 +4339,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4363,25 +4370,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4458,7 +4465,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4882,9 +4889,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7646,7 +7652,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8731,223 +8737,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "الرخصة" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8955,65 +8961,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9023,59 +9030,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9085,142 +9094,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9228,7 +9228,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9236,30 +9236,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9267,7 +9266,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9275,27 +9274,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9304,7 +9303,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9313,11 +9312,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9325,7 +9324,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11419,11 +11418,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11434,67 +11440,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11504,43 +11572,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11548,7 +11616,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11556,11 +11624,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12076,7 +12144,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14164,7 +14232,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14994,10 +15062,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15013,273 +15080,270 @@ msgid "Formatting conventions" msgstr "إنشاء المحتوى" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18252,91 +18316,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25566,18 +25636,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25585,11 +25671,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25599,11 +25685,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "العمق" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25612,34 +25698,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25647,33 +25733,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25681,17 +25767,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25700,17 +25786,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25830,7 +25916,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26247,7 +26334,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26322,13 +26409,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26337,30 +26431,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26368,63 +26462,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26432,82 +26526,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27104,7 +27198,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27112,28 +27206,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27143,7 +27237,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27153,57 +27247,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27212,7 +27306,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27220,52 +27314,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27275,28 +27369,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27304,47 +27398,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27353,65 +27447,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27421,27 +27515,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27449,78 +27543,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28761,23 +28855,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28785,90 +28879,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28877,30 +28971,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28908,120 +29002,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29029,13 +29123,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29043,44 +29137,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29088,14 +29182,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29104,37 +29198,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29142,7 +29236,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29151,7 +29245,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29159,7 +29253,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29167,12 +29261,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29180,30 +29274,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29211,30 +29305,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29242,14 +29336,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29257,86 +29351,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29344,62 +29438,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29408,7 +29502,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29416,44 +29510,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29463,32 +29557,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29498,7 +29592,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36792,7 +36886,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36803,99 +36897,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36903,11 +36997,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36918,26 +37012,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36946,7 +37040,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37739,7 +37833,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43359,10 +43453,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52013,7 +52103,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62839,6 +62929,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62849,52 +62943,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64721,9 +64815,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64752,7 +64846,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64780,7 +64874,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64804,9 +64898,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65211,7 +65305,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65497,7 +65591,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65658,17 +65752,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65677,7 +65770,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65750,7 +65843,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65779,12 +65872,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65804,57 +65896,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65862,7 +65950,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65870,57 +65958,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65931,6 +66028,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66834,7 +66935,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66842,18 +66942,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66861,27 +66961,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66889,21 +66989,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66914,12 +67014,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66927,7 +67027,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66936,28 +67036,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66967,7 +67067,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66977,19 +67077,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66998,7 +67098,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67006,14 +67106,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67022,57 +67122,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67083,7 +67183,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67093,55 +67193,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "إنشاء المحتوى" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67150,65 +67250,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67339,7 +67439,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/bg.po b/weblate/bg.po index 4c4067c704..8f3b16a1b6 100644 --- a/weblate/bg.po +++ b/weblate/bg.po @@ -6,7 +6,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: Bulgarian `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "" @@ -943,360 +947,357 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +msgid ":ref:`doc_android_plugin`" msgstr "" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -1759,7 +1760,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2054,11 +2055,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2068,14 +2071,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2755,8 +2758,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2934,7 +2937,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4134,36 +4137,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4173,17 +4176,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4191,7 +4194,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4199,28 +4202,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4230,25 +4233,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4325,7 +4328,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4748,9 +4751,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7512,7 +7514,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8596,223 +8598,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8820,65 +8822,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8888,59 +8891,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -8950,142 +8955,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9093,7 +9089,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9101,30 +9097,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9132,7 +9127,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9140,27 +9135,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9169,7 +9164,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9178,11 +9173,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9190,7 +9185,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11283,11 +11278,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11298,67 +11300,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11368,43 +11432,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11412,7 +11476,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11420,11 +11484,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -11936,7 +12000,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14022,7 +14086,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14851,10 +14915,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14869,273 +14932,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18102,91 +18162,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25405,18 +25471,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25424,11 +25506,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25438,11 +25520,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25451,34 +25533,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25486,33 +25568,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25520,17 +25602,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25539,17 +25621,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25669,7 +25751,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26086,7 +26169,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26161,13 +26244,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26176,30 +26266,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26207,63 +26297,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26271,82 +26361,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -26943,7 +27033,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -26951,28 +27041,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -26982,7 +27072,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -26992,57 +27082,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27051,7 +27141,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27059,52 +27149,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27114,28 +27204,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27143,47 +27233,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27192,65 +27282,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27260,27 +27350,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27288,78 +27378,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28599,23 +28689,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28623,90 +28713,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28715,30 +28805,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28746,120 +28836,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28867,13 +28957,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28881,44 +28971,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -28926,14 +29016,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -28942,37 +29032,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -28980,7 +29070,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -28989,7 +29079,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -28997,7 +29087,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29005,12 +29095,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29018,30 +29108,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29049,30 +29139,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29080,14 +29170,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29095,86 +29185,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29182,62 +29272,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29246,7 +29336,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29254,44 +29344,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29301,32 +29391,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29336,7 +29426,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36628,7 +36718,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36639,99 +36729,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36739,11 +36829,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36754,26 +36844,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36782,7 +36872,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37573,7 +37663,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43179,10 +43269,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51826,7 +51912,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62643,6 +62729,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62653,52 +62743,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64522,9 +64612,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64553,7 +64643,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64581,7 +64671,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64605,9 +64695,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65012,7 +65102,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65298,7 +65388,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65459,17 +65549,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65478,7 +65567,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65551,7 +65640,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65580,12 +65669,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65605,57 +65693,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65663,7 +65747,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65671,57 +65755,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65732,6 +65825,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66635,7 +66732,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66643,18 +66739,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66662,27 +66758,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66690,21 +66786,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66715,12 +66811,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66728,7 +66824,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66737,28 +66833,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66768,7 +66864,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66778,19 +66874,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66799,7 +66895,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66807,14 +66903,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66823,57 +66919,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66884,7 +66980,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -66894,54 +66990,54 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 msgid "Targeting Android" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -66950,65 +67046,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67139,7 +67235,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/ca.po b/weblate/ca.po index 3dc6406fc4..8090fbe6e8 100644 --- a/weblate/ca.po +++ b/weblate/ca.po @@ -10,7 +10,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: roger <616steam@gmail.com>\n" "Language-Team: Catalan `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "La documentació principal està organitzada en les seccions següents:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "General" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Primers passos" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutorials" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Desenvolupament" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Comunitat" @@ -1175,364 +1179,364 @@ msgstr "" #: ../../docs/about/docs_changelog.rst:14 #, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Nous tutorials des de la versió 3.0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:19 +msgid ":ref:`doc_localization_using_gettext`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:22 +#, fuzzy msgid "New tutorials since version 3.0" msgstr "Nous tutorials des de la versió 3.0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Pas a pas" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 #, fuzzy msgid "Project workflow" msgstr "Flux de treball del projecte" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 #, fuzzy msgid "Physics" msgstr "Físiques" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animació" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optimització" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Primers passos" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Connectors" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Primers passos" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1997,7 +2001,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2292,11 +2296,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2306,14 +2312,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2993,8 +2999,8 @@ msgstr "Grups" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3172,7 +3178,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4372,36 +4378,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4411,17 +4417,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "Efectes de so" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4429,7 +4435,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4437,28 +4443,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "Drecera de teclat" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4468,27 +4474,27 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "Fitxers del projecte" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 #, fuzzy msgid "You can find a completed version of this project at these locations:" msgstr "Podeu trobar una versió completa d'aquest projecte en aquests llocs:" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 #, fuzzy msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "https://github.com/kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 #, fuzzy msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -4567,7 +4573,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "Plantilles d'exportació" @@ -5001,9 +5007,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7765,7 +7770,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8850,224 +8855,224 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Llicència" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 #, fuzzy msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9075,65 +9080,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9143,59 +9149,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9205,142 +9213,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9348,7 +9347,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9356,30 +9355,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9387,7 +9385,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9395,27 +9393,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9424,7 +9422,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9433,11 +9431,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9445,7 +9443,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11540,11 +11538,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11555,67 +11560,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11625,43 +11692,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11669,7 +11736,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11677,11 +11744,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12193,7 +12260,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14280,7 +14347,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15110,10 +15177,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15128,273 +15194,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18363,91 +18426,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25668,18 +25737,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25687,11 +25772,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25701,11 +25786,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Profunditat" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25714,34 +25799,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25749,33 +25834,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25783,17 +25868,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25802,17 +25887,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25932,7 +26017,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26349,7 +26435,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26424,13 +26510,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26439,31 +26532,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Les raons principals són:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26471,63 +26564,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26535,82 +26628,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27208,7 +27301,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27216,28 +27309,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27247,7 +27340,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27257,57 +27350,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27316,7 +27409,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27324,52 +27417,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27379,28 +27472,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27408,47 +27501,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27457,65 +27550,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27525,27 +27618,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27553,78 +27646,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28865,23 +28958,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28889,90 +28982,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28981,30 +29074,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -29012,120 +29105,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29133,13 +29226,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29147,44 +29240,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29192,14 +29285,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29208,37 +29301,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29246,7 +29339,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29255,7 +29348,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29263,7 +29356,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29271,12 +29364,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29284,30 +29377,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29315,30 +29408,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29346,14 +29439,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29361,86 +29454,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29448,62 +29541,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29512,7 +29605,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29520,44 +29613,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29567,32 +29660,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29602,7 +29695,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36894,7 +36987,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36905,99 +36998,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -37005,11 +37098,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -37020,26 +37113,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37048,7 +37141,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37839,7 +37932,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43449,10 +43542,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52100,7 +52189,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62927,6 +63016,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62937,52 +63030,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64807,9 +64900,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64838,7 +64931,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64866,7 +64959,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64890,9 +64983,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65297,7 +65390,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65583,7 +65676,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65744,17 +65837,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65763,7 +65855,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65836,7 +65928,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65865,12 +65957,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65890,57 +65981,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65948,7 +66035,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65956,57 +66043,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -66017,6 +66113,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66920,7 +67020,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66928,18 +67027,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66947,27 +67046,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66975,21 +67074,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -67000,12 +67099,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -67013,7 +67112,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -67022,28 +67121,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67053,7 +67152,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67063,19 +67162,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67084,7 +67183,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67092,14 +67191,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67108,57 +67207,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67169,7 +67268,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67179,55 +67278,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Primers passos" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67236,65 +67335,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67425,7 +67524,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/cs.po b/weblate/cs.po index 585385281c..21139171dd 100644 --- a/weblate/cs.po +++ b/weblate/cs.po @@ -14,7 +14,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-06-16 20:10+0000\n" "Last-Translator: SharpCat \n" "Language-Team: Czech `_ " "kanálu!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Hlavní dokumentace webu je uspořádána do následujících částí:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Všeobecné" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Začínáme" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutoriály" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Vývoj" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Komunita" @@ -1006,363 +1010,366 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Lokalizace" + +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "Animace" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" +msgstr "Podmínka" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animace" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr "Částice" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animace" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Vytváření obsahu" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Pluginy" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Animace" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Pluginy" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1824,7 +1831,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2119,11 +2126,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2133,14 +2142,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2820,8 +2829,8 @@ msgstr "Skupiny" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2999,7 +3008,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4205,36 +4214,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4244,17 +4253,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4262,7 +4271,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4270,28 +4279,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4301,25 +4310,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4396,7 +4405,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4821,9 +4830,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7585,7 +7593,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8670,223 +8678,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licence" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8894,65 +8902,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8962,59 +8971,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9024,142 +9035,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9167,7 +9169,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9175,30 +9177,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9206,7 +9207,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9214,28 +9215,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Animace" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9244,7 +9245,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9253,11 +9254,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9265,7 +9266,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11360,11 +11361,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11375,67 +11383,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11445,43 +11515,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11489,7 +11559,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11497,11 +11567,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12014,7 +12084,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14104,7 +14174,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14938,10 +15008,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14956,273 +15025,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18202,91 +18268,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25519,18 +25591,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25538,11 +25626,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25552,11 +25640,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Hloubka" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25565,34 +25653,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25600,33 +25688,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25634,17 +25722,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25653,17 +25741,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25783,7 +25871,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26200,7 +26289,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26275,13 +26364,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26290,30 +26386,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26321,63 +26417,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26385,82 +26481,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27058,7 +27154,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27066,28 +27162,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27097,7 +27193,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27107,57 +27203,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27166,7 +27262,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27174,52 +27270,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27229,28 +27325,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27258,47 +27354,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27307,65 +27403,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27375,27 +27471,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27403,78 +27499,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28716,23 +28812,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28740,90 +28836,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28832,30 +28928,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28863,120 +28959,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28984,13 +29080,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28998,44 +29094,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29043,14 +29139,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29059,37 +29155,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29097,7 +29193,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29106,7 +29202,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29114,7 +29210,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29122,12 +29218,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29135,30 +29231,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29166,30 +29262,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29197,14 +29293,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29212,86 +29308,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29299,62 +29395,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29363,7 +29459,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29371,44 +29467,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29418,32 +29514,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29453,7 +29549,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36747,7 +36843,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36758,99 +36854,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36858,11 +36954,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36873,26 +36969,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36901,7 +36997,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37694,7 +37790,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43318,10 +43414,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51974,7 +52066,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62806,6 +62898,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62816,52 +62912,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64690,9 +64786,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64721,7 +64817,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64750,7 +64846,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64774,9 +64870,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65181,7 +65277,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65467,7 +65563,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65628,17 +65724,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65647,7 +65742,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65720,7 +65815,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65749,12 +65844,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65774,57 +65868,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65832,7 +65922,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65840,57 +65930,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65901,6 +66000,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66804,7 +66907,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66812,18 +66914,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66831,27 +66933,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66859,21 +66961,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66884,12 +66986,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66897,7 +66999,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66906,28 +67008,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66937,7 +67039,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66947,19 +67049,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66968,7 +67070,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66976,14 +67078,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66992,57 +67094,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67053,7 +67155,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67063,55 +67165,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Animace" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67120,66 +67222,66 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 #, fuzzy msgid "Command-line options" msgstr "Podmínka" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67310,7 +67412,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/da.po b/weblate/da.po index d75ba44abb..a2ee655f8d 100644 --- a/weblate/da.po +++ b/weblate/da.po @@ -13,7 +13,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-03-07 07:43+0000\n" "Last-Translator: necrophcodr \n" "Language-Team: Danish `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Den primære dokumentation på siden er sorteret i følgende sektioner:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Generelt" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Kom i gang" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutorials" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Udvikling" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Fællesskab" @@ -1101,362 +1105,361 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Skabe indhold" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Kom i gang" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1918,7 +1921,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Redaktør" @@ -2213,11 +2216,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2227,14 +2232,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2914,8 +2919,8 @@ msgstr "Grupper" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3093,7 +3098,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4293,36 +4298,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4332,17 +4337,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4350,7 +4355,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4358,28 +4363,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4389,25 +4394,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4484,7 +4489,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4907,9 +4912,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7671,7 +7675,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8756,224 +8760,224 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 #, fuzzy msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8981,65 +8985,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9049,59 +9054,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9111,142 +9118,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9254,7 +9252,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9262,30 +9260,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9293,7 +9290,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9301,27 +9298,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9330,7 +9327,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9339,11 +9336,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9351,7 +9348,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11446,11 +11443,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11461,67 +11465,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11531,43 +11597,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11575,7 +11641,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11583,11 +11649,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12099,7 +12165,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14185,7 +14251,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15015,10 +15081,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15033,273 +15098,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18268,91 +18330,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25577,18 +25645,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25596,11 +25680,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25610,11 +25694,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25623,34 +25707,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25658,33 +25742,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25692,17 +25776,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25711,17 +25795,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25841,7 +25925,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26258,7 +26343,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26333,13 +26418,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26348,31 +26440,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Grundene er:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26380,63 +26472,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26444,82 +26536,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27117,7 +27209,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27125,28 +27217,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27156,7 +27248,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27166,57 +27258,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27225,7 +27317,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27233,52 +27325,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27288,28 +27380,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27317,47 +27409,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27366,65 +27458,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27434,27 +27526,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27462,78 +27554,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28774,23 +28866,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28798,90 +28890,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28890,30 +28982,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28921,120 +29013,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29042,13 +29134,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29056,44 +29148,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29101,14 +29193,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29117,37 +29209,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29155,7 +29247,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29164,7 +29256,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29172,7 +29264,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29180,12 +29272,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29193,30 +29285,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29224,30 +29316,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29255,14 +29347,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29270,86 +29362,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29357,62 +29449,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29421,7 +29513,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29429,44 +29521,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29476,32 +29568,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29511,7 +29603,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36804,7 +36896,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36815,99 +36907,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36915,11 +37007,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36930,26 +37022,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36958,7 +37050,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37751,7 +37843,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43361,10 +43453,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52012,7 +52100,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62839,6 +62927,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62849,52 +62941,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64721,9 +64813,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64752,7 +64844,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64780,7 +64872,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64804,9 +64896,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65211,7 +65303,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65497,7 +65589,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65658,17 +65750,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65677,7 +65768,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65750,7 +65841,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65779,12 +65870,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65804,57 +65894,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65862,7 +65948,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65870,57 +65956,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65931,6 +66026,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66834,7 +66933,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66842,18 +66940,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66861,27 +66959,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66889,21 +66987,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66914,12 +67012,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66927,7 +67025,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66936,28 +67034,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66967,7 +67065,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66977,19 +67075,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66998,7 +67096,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67006,14 +67104,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67022,57 +67120,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67083,7 +67181,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67093,55 +67191,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Kom i gang" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67150,65 +67248,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67339,7 +67437,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/de.po b/weblate/de.po index c2d048be25..7957f32656 100644 --- a/weblate/de.po +++ b/weblate/de.po @@ -82,7 +82,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: Alexander Hausmann \n" "Language-Team: German `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Die Hauptdokumentation von Godot ist in folgende Abschnitte gegliedert:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Allgemein" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Erste Schritte" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Anleitungen" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Entwicklung" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Gemeinschaft" @@ -1373,378 +1377,430 @@ msgstr "" "sind nicht Bestandteil dieses Dokuments." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Neue Tutorials seit Version 3.0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "Internationalisierung" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Lokalisierung" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "Neue Tutorials seit Version 3.0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Schritt für Schritt" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`Signale `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`Exportieren `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Projekt-Workflow" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +#, fuzzy +msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`Benutzerdefinierte Builds für Android`" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "Bewährte Techniken:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Einführung `" -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Was sind Godot Klassen `" -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Szenenorganisation `" -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Szenen Versus Skripte `" -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" +#: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Autoloads vs. interne Nodes `" -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" +#: ../../docs/about/docs_changelog.rst:41 +#, fuzzy +msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Node Alternativen `" -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Godot Interfaces `" -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Godot Benachrichtigungen `" -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Datenvoreinstellungen `" -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Logikvoreinstellungen `" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "Scripting" -#: ../../docs/about/docs_changelog.rst:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +#, fuzzy +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Typisiertes GDscript `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +#, fuzzy +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`2D Lichter und Schatten `" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`2D Meshes `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" -msgstr "" -":ref:` Tausende Fische mit MultiMesh animieren " -"`" +#: ../../docs/about/docs_changelog.rst:62 +#, fuzzy +msgid ":ref:`doc_animating_thousands_of_fish`" +msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +#, fuzzy +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:` Tausende Fische mit Partikeln steuern " "`" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Physik" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Ragdoll System `" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animation" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" msgstr "2D Skelette" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Animationsbaum `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Container`" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Ansichten" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +#, fuzzy +msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Viewports als Textur verwenden `" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" msgstr "" ":ref:` Benutzerdefiniertes post-processing `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Schattieren" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +#: ../../docs/about/docs_changelog.rst:91 +#, fuzzy +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Einführung in Shader: 2D und 3D Wasser (7 Videotutorials) " "`" -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +#: ../../docs/about/docs_changelog.rst:92 +#, fuzzy +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Übergang zu Godots Shadersprache " "`" -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr ":ref:`Fortgeschritene Nachbearbeitung `" +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "Fortgeschrittenes Post-Processing" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "Dein erster Shader (Serie)" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" +#: ../../docs/about/docs_changelog.rst:96 +#, fuzzy +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Was sind Shader? `" -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" +#: ../../docs/about/docs_changelog.rst:97 +#, fuzzy +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Dein erster CanvasItem-Shader `" -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" +#: ../../docs/about/docs_changelog.rst:98 +#, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Dein erster Spatial-Shader `" -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" +#: ../../docs/about/docs_changelog.rst:99 +#, fuzzy +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Dein erster Spatial Shader: Teil 2 `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:106 msgid "Shading Reference:" msgstr "Shaderreferenz:" -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" msgstr ":ref:`Shader `" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" msgstr ":ref:`Shadersprache `" -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Spatial-Shader `" -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`CanvasItem-Shader `" -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Partikelshader `" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:111 +#, fuzzy +msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`VR Anfängeranleitung `" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Plattformspezifisches" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Die HTML Seite des Web export anpassen `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Multi-threading" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +#, fuzzy +msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread-sichere APIs `" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optimierung" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +#, fuzzy +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Verwendung von MultiMesh's `" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +#, fuzzy +msgid ":ref:`doc_using_servers`" msgstr ":ref:`Server verwenden `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Sonstiges" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +#, fuzzy +msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Zittern und ruckeln beheben `" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +#, fuzzy +msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Code im Editor ausführen `" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +#, fuzzy +msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Scenen manuell wechseln `" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +#, fuzzy +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" ":ref:`Unterschiede zwischen GLES2 und GLES3 `" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Rechtliches" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +#, fuzzy +msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Einhalten von Lizenzen `" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "Kompilieren" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +#, fuzzy +msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`Build auf Größe optimieren `" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +#, fuzzy +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Mit Scriptverschlüsselung kompilieren " "`" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Engine Entwicklung" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +#, fuzzy +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" ":ref:`Auf externe Bibliotheken zugreifen `" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Inhalte erstellen" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" msgstr ":ref:`Bäume erstellen `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Erweiterungen" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Plug-Ins für den Hauptbildschirm erstellen " "`" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +#, fuzzy +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Spatial gizmo Plug-Ins `" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Android-Plugins erstellen `" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -2324,7 +2380,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2730,17 +2786,20 @@ msgstr "" "basieren, betreffen alle Änderungen in dieser Szene auch alle Instanzen." #: ../../docs/getting_started/step_by_step/instancing.rst:107 +#, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "Du kannst auch einzelne Instanzen anpassen. Setze den `Bounce` Wert zurück " "auf ``0`` und gehe dann in die ``Main`` Szene. Wähle einen instanziierten " "Ball aus und setze dessen ``Bounce`` Wert auf ``1``. Drücke danach auf " "\"Starten\"." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2756,14 +2815,14 @@ msgstr "" "bei. Durch Drücken der \"Rückgängig\"-Schalfläche, wird die Eigenschaft auf " "den Wert der gespeicherten Szene zurückgesetzt." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Fazit" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3712,8 +3771,8 @@ msgstr "Gruppen" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Eine nützliche Funktion zur Organisation großer Szenen ist es, Nodes zu " "Gruppen zusammenzufassen. Ein Node kann beliebig vielen Gruppen hinzugefügt " @@ -3964,7 +4023,7 @@ msgstr "" "Ausschließlich GDScript erstellt globale Variablen für jedes benannte Skript." #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5643,7 +5702,7 @@ msgstr "" "``queue_free()`` wird den aktuellen Knoten am Ende des aktuellen Frames " "löschen." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 msgid "" "Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` " "function, at the end." @@ -5651,7 +5710,7 @@ msgstr "" "Füge dann in ``Main.gd`` eine neue Zeile ans Ende der Funktion " "``_on_MobTimer_timeout()`` an." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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 " @@ -5661,11 +5720,11 @@ msgstr "" "verweist), dass er auf jedes ``start_game``-Signal vom ``HUD``-Knoten " "reagieren soll, indem der die ``_on_start_game()``-Funktion aktiviert." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "Fertigstellung" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -5676,12 +5735,12 @@ msgstr "" "Spielerlebnis verbessert. Zögere nicht, das Gameplay mit Deinen eigenen " "Ideen zu erweitern." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "Hintergrund" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5697,7 +5756,7 @@ msgstr "" "hat nur eine Eigenschaft: ``Color``. Wähle eine Farbe aus, die Dir gefällt, " "und ziehe die Größe des ``ColorRect`` so, dass es den Bildschirm abdeckt." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 msgid "" "You could also add a background image, if you have one, by using a " "``Sprite`` node." @@ -5705,11 +5764,11 @@ msgstr "" "Wenn Du ein Hintergrundbild hast, kannst Du auch einen ``Sprite``-Node " "hinzufügen." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "Soundeffekte" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5721,7 +5780,7 @@ msgstr "" "Sounddateien: „House in a Forest Loop.ogg“ für Hintergrundmusik und " "„gameover.wav“ für den Fall, dass der Spieler verliert." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5733,7 +5792,7 @@ msgstr "" "``DeathSound``. Klicke bei jedem Node auf die Eigenschaft ``Stream``, klicke " "auf „Lade“ und wähle die entsprechende Audiodatei aus." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5741,17 +5800,17 @@ msgstr "" "Um die Musik abzuspielen, füge ``$Music.play()`` in der ``new_game()`` " "Funktion und ``$Music.stop()`` in der ``game_over()`` Funktion hinzu." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" "Füge schließlich ``$DeathSound.play()`` in der ``game_over()`` Funktion " "hinzu." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "Tastenkürzel" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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 " @@ -5762,7 +5821,7 @@ msgstr "" "könnten. Eine Möglichkeit hierzu ist die Verwendung der „Shortcut“ -" "Eigenschaft des ``Button``-Nodes." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5778,7 +5837,7 @@ msgstr "" "Gib schließlich in der Eigenschaft „Action“ den Namen „ui_select“ ein. Dies " "ist das Standardeingabeereignis, das der Leertaste zugeordnet ist." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." @@ -5786,19 +5845,19 @@ msgstr "" "Wenn nun die Start-Schaltfläche angezeigt wird, kannst Du entweder darauf " "klicken oder die Leertaste drücken, um das Spiel zu starten." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "Projektdateien" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "Eine vollständige Version dieses Projekts findest Du unter:" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "https://github.com/kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -5906,7 +5965,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "Exportvorlagen" @@ -6513,11 +6572,11 @@ msgstr "" "von Grund auf entwickelt." #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 +#, fuzzy msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" "Jeder kann proprietäre Tools für die Bedürfnisse seiner Projekte einsetzen - " "sie werden einfach nicht mit der Engine ausgeliefert. Dies kann NVIDIA " @@ -10130,7 +10189,7 @@ msgstr ":download:`robisplash_assets.zip `." #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -11421,223 +11480,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Lizenz" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -11645,65 +11704,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -11713,59 +11773,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -11775,18 +11837,19 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 +#, fuzzy msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" "1) Das System ist stärker ausgerichtet am Paradigma der objektorientierten " "Programmierung: Godot bringt eine Reihe an Nodes mit, die in dem Sinne zwar " @@ -11794,128 +11857,119 @@ msgstr "" "Nodes die Eigenschaften und Methoden des Eltern-Nodes: Das ist das Prinzip " "der Vererbung." -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -11923,7 +11977,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -11931,30 +11985,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -11962,7 +12015,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -11970,27 +12023,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "Skript-Serialisierung" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -11999,7 +12052,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -12008,11 +12061,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -12020,7 +12073,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -14296,11 +14349,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "Speicher-Management" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -14311,67 +14371,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "Co-Routinen mit yield" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -14381,43 +14503,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "Ausgabe:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "Co-Routinen & Signale" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "Onready Schlüsselwort" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -14425,7 +14547,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -14433,11 +14555,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "Assert Schlüsselwort" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -14991,7 +15113,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "Benennungsrichtlinien" @@ -17188,7 +17310,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -18023,10 +18145,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -18041,273 +18162,271 @@ msgid "Formatting conventions" msgstr "Formatierungsrichtlinien" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "Verwendung von Leerzeichen" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," -msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" +msgstr "Andere Chats" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -21353,91 +21472,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -28716,18 +28841,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -28735,11 +28876,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -28749,11 +28890,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Tiefe" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -28762,34 +28903,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -28797,33 +28938,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -28831,17 +28972,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -28850,17 +28991,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -28980,7 +29121,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -29397,7 +29539,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -29472,13 +29614,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -29487,30 +29636,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "Die hauptsächlichen Nachteile von ``GIProbe`` sind:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -29518,63 +29667,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "Lichter hinzufügen" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -29582,82 +29731,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -30254,7 +30403,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -30262,28 +30411,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -30293,7 +30442,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -30303,57 +30452,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "Mid- und Post-Processing-Effekte" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -30362,7 +30511,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -30370,52 +30519,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -30425,28 +30574,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -30454,47 +30603,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -30503,65 +30652,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -30571,27 +30720,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -30599,78 +30748,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -31919,23 +32068,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -31943,90 +32092,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -32035,30 +32184,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -32066,121 +32215,121 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" "Erst weisen wir ``dir`` einen leeren :ref:`Vector3 ` zu." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -32188,13 +32337,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -32202,44 +32351,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -32247,14 +32396,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -32263,37 +32412,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -32301,7 +32450,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -32310,7 +32459,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -32318,7 +32467,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -32326,12 +32475,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -32339,30 +32488,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -32370,30 +32519,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -32401,14 +32550,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -32416,86 +32565,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -32503,62 +32652,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -32567,7 +32716,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -32575,44 +32724,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -32622,32 +32771,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -32657,7 +32806,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -39957,7 +40106,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -39968,99 +40117,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -40068,11 +40217,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -40083,26 +40232,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -40111,7 +40260,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -40902,7 +41051,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "Beispiele" @@ -46573,10 +46722,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "Internationalisierung" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -55241,7 +55386,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -66148,6 +66293,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -66158,52 +66307,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -68074,9 +68223,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -68105,7 +68254,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -68134,7 +68283,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -68158,9 +68307,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -68565,7 +68714,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -68851,7 +69000,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -69012,17 +69161,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -69031,7 +69179,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -69104,7 +69252,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -69133,12 +69281,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -69158,57 +69305,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -69216,7 +69359,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -69224,57 +69367,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -69285,6 +69437,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -70188,7 +70344,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -70196,18 +70351,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "Umgebungsvariablen" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -70215,27 +70370,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -70243,21 +70398,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -70268,12 +70423,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -70281,7 +70436,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -70290,28 +70445,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -70321,7 +70476,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -70331,19 +70486,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "Beispiel (Windows)" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "Beispiel (X11)" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -70352,7 +70507,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -70360,14 +70515,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -70376,57 +70531,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -70437,7 +70592,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -70447,55 +70602,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Eine einfache Erweiterung erstellen" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -70504,65 +70659,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "Kommandozeilenoptionen" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -70693,7 +70848,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" @@ -76617,6 +76772,17 @@ msgstr "" "`Zeef Godot Engine: Ein von Andre Schmitz gepflegtes Verzeichnis von " "Resourcen `_" +#~ msgid "" +#~ ":ref:`Animating thousands of fish with MultiMesh " +#~ "`" +#~ msgstr "" +#~ ":ref:` Tausende Fische mit MultiMesh animieren " +#~ "`" + +#~ msgid ":ref:`Advanced post-processing `" +#~ msgstr "" +#~ ":ref:`Fortgeschritene Nachbearbeitung `" + #~ msgid "arrays" #~ msgstr "Arrays" diff --git a/weblate/el.po b/weblate/el.po index f672fb50d0..bcefa1731b 100644 --- a/weblate/el.po +++ b/weblate/el.po @@ -13,7 +13,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: George Tsiamasiotis \n" "Language-Team: Greek `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Το κύριο εγχειρίδιο χρήσης του ιστότοπου είναι διατετμημένο στις παρακάτω " "ενότητες:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Γενικά" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Ξεκινώντας" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Διδακτικό υλικό" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Ανάπτυξη" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Κοινότητα" @@ -1321,363 +1325,369 @@ msgstr "" "σημαντικά αλλά αυτό δεν αντικατοπτρίζεται σε αυτό το αρχείο." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Καινούργιο διδακτικό υλικό από την έκδοση 3,0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Τοπική προσαρμογή" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "Καινούργιο διδακτικό υλικό από την έκδοση 3,0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Βήμα-βήμα" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Ροή εργασιών του πρότζεκτ" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "Καλύτερες τεχνικές:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "Κίνηση" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" +msgstr "Συνθήκη" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" +msgstr "Δείτε :ref:`doc_ways_to_contribute`." + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" +msgstr "Δείτε :ref:`doc_ways_to_contribute`." + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr "Σωματίδια" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Κίνηση" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Δημιουργία περιεχομένου" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Πρόσθετα" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Κινήσεις" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -2177,7 +2187,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Επεξεργαστής" @@ -2472,11 +2482,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2486,14 +2498,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3173,8 +3185,8 @@ msgstr "Ομάδες" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3352,7 +3364,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4557,36 +4569,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4596,17 +4608,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4614,7 +4626,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4622,28 +4634,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4653,26 +4665,26 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 #, fuzzy msgid "Project files" msgstr "Πρόγραμμα δημιουργίας προφιλ" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4749,7 +4761,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -5174,9 +5186,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7938,7 +7949,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -9023,223 +9034,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Άδεια" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, MacOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9247,65 +9258,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9315,59 +9327,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9377,142 +9391,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9520,7 +9525,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9528,30 +9533,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9559,7 +9563,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9567,28 +9571,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Κίνηση" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9597,7 +9601,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9606,11 +9610,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9618,7 +9622,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11717,11 +11721,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11732,67 +11743,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11802,43 +11875,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11846,7 +11919,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11854,11 +11927,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12371,7 +12444,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14461,7 +14534,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15296,10 +15369,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15315,273 +15387,270 @@ msgid "Formatting conventions" msgstr "Δημιουργία περιεχομένου" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18566,91 +18635,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25886,18 +25961,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25905,11 +25996,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25919,11 +26010,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Βάθος" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25932,34 +26023,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25967,33 +26058,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -26001,17 +26092,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -26020,17 +26111,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -26150,7 +26241,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26567,7 +26659,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26642,13 +26734,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26657,31 +26756,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Οι κύριοι λόγοι είναι:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26689,63 +26788,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26753,82 +26852,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27427,7 +27526,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27435,28 +27534,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27466,7 +27565,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27476,57 +27575,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27535,7 +27634,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27543,52 +27642,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27598,28 +27697,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27627,47 +27726,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27676,65 +27775,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27744,27 +27843,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27772,78 +27871,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -29084,23 +29183,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -29108,90 +29207,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -29200,30 +29299,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -29231,120 +29330,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29352,13 +29451,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29366,44 +29465,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29411,14 +29510,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29427,37 +29526,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29465,7 +29564,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29474,7 +29573,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29482,7 +29581,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29490,12 +29589,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29503,30 +29602,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29534,30 +29633,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29565,14 +29664,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29580,86 +29679,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29667,62 +29766,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29731,7 +29830,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29739,44 +29838,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29786,32 +29885,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29821,7 +29920,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -37115,7 +37214,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -37126,99 +37225,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -37226,11 +37325,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -37241,26 +37340,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37269,7 +37368,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -38062,7 +38161,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43686,10 +43785,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52344,7 +52439,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -63182,6 +63277,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -63192,52 +63291,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -65066,9 +65165,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -65097,7 +65196,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -65126,7 +65225,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -65150,9 +65249,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65557,7 +65656,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65843,7 +65942,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -66004,17 +66103,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -66023,7 +66121,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -66096,7 +66194,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -66125,12 +66223,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -66150,57 +66247,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -66208,7 +66301,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -66216,57 +66309,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -66277,6 +66379,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -67180,7 +67286,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -67188,18 +67293,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -67207,27 +67312,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -67235,21 +67340,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -67260,12 +67365,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -67273,7 +67378,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -67282,28 +67387,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67313,7 +67418,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67323,19 +67428,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67344,7 +67449,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67352,14 +67457,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67368,57 +67473,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67429,7 +67534,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67439,55 +67544,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Κινήσεις" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67496,66 +67601,66 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 #, fuzzy msgid "Command-line options" msgstr "Συνθήκη" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67686,7 +67791,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/es.po b/weblate/es.po index 23fe613ab7..c135f95002 100644 --- a/weblate/es.po +++ b/weblate/es.po @@ -76,7 +76,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:05+0000\n" "Last-Translator: Peter Mx \n" "Language-Team: Spanish `_, o en el canal ``#godotengine-doc`` en `irc.freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "La documentación principal para este sitio está organizada en las siguientes " "secciones:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "General" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Comenzando" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutoriales" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Desarrollo" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Comunidad" @@ -1355,380 +1359,430 @@ msgstr "" "pero no se ha reflejo en este documento." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Nuevos tutoriales desde la versión 3.0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "Iternacionalización" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Traducciones" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "Nuevos tutoriales desde la versión 3.0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Paso a paso" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`Señales `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`Exportar `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Flujo de trabajo del proyecto" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +#, fuzzy +msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`Custom builds para Android `" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "Mejores prácticas:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Introducción " -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref: 'Que son las Clases de Godot " -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organización de la escena `" -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref: 'Escenas versus Scripts '" -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" -":ref: 'Autocargas versus Nodos internos " -"" +#: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "Autoloads y nodos internos" -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" +#: ../../docs/about/docs_changelog.rst:41 +#, fuzzy +msgid ":ref:`doc_node_alternatives`" msgstr ":ref: 'Alternativas de nodos " -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Interfaces en Godot `" -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Notificaciones de Godot `" -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Preferencia de datos `" -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Preferencias de lógica`" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "Scripting" -#: ../../docs/about/docs_changelog.rst:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +#, fuzzy +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Typed GDscript `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +#, fuzzy +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Iluminación y sombras 2D `" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Mallas 2D `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" -msgstr "" -":ref:`Animación de miles de objetos con MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +#, fuzzy +msgid ":ref:`doc_animating_thousands_of_fish`" +msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +#, fuzzy +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Controlando cientos de peces con partículas " "`" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Física" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Sistema de fisica ragdoll " -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animación" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Esqueletos 2D `" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`AnimationTree `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Containers `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Viewports" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +#, fuzzy +msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Usando un Viewport como textura `" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Post procesado personalizado `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Shading" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +#: ../../docs/about/docs_changelog.rst:91 +#, fuzzy +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introducción a shaders: Agua 2D y 3D (7 video tutoriales) " "`" -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +#: ../../docs/about/docs_changelog.rst:92 +#, fuzzy +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migrando al lenguaje de shaders de Godot " "`" -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr ":ref:`Post procesado avanzado `" +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "Post procesamiento avanzado" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "Tu primera serie de Shaders:" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" +#: ../../docs/about/docs_changelog.rst:96 +#, fuzzy +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`¿Qué son los shaders? `" -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" +#: ../../docs/about/docs_changelog.rst:97 +#, fuzzy +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Tu primer shader CanvasItem `" -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" +#: ../../docs/about/docs_changelog.rst:98 +#, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Tu primer shader Spatial `" -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" +#: ../../docs/about/docs_changelog.rst:99 +#, fuzzy +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Tu primer shader Spatial: Parte 2 `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:106 msgid "Shading Reference:" msgstr "Referencia de Shading:" -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" msgstr ":ref:`Lenguaje de Shading `" -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Spatial shaders `" -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`CanvasItem shaders `" -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Shaders de partículas `" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:111 +#, fuzzy +msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Tutorial básico de VR `" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Específico de plataformas" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Personalizar la página HTML de exportación Web " "`" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Multi-threading" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +#, fuzzy +msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread safe APIs `" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optimización" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +#, fuzzy +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Uso de MultiMesh `" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +#, fuzzy +msgid ":ref:`doc_using_servers`" msgstr ":ref:`Uso de servidores `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Misceláneo" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +#, fuzzy +msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Corrigiendo jitter y stutter `" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +#, fuzzy +msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Ejecutando código en el editor `" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +#, fuzzy +msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Cambio manual de escenas `" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +#, fuzzy +msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`Diferencias entre GLES2 y GLES3 `" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Legal" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +#, fuzzy +msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Cumplimiento de las licencias `" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "Compilando" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +#, fuzzy +msgid ":ref:`doc_optimizing_for_size`" msgstr "" ":ref:`Optimizando una compilación para menor tamaño " "`" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +#, fuzzy +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Compilando un script con clave de cifrado " "`" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Desarrollo del motor" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +#, fuzzy +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" ":ref:`Vinculación con librerías externas `" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Creación de contenido" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" msgstr ":ref:`Creando árboles `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Haciendo plugins para la pantalla principal " "`" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +#, fuzzy +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Spatial gizmo plugins `" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Creación de plugins para Android `" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -2305,7 +2359,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2708,17 +2762,20 @@ msgstr "" "guardada, los cambios en esa escena afectarán a todas las instancias." #: ../../docs/getting_started/step_by_step/instancing.rst:107 +#, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "También puede ajustar instancias individuales. Vuelve a poner el valor de " "bounce (rebote) en ``0`` y, a continuación, en la escena ``Main``, " "selecciona una de las bolas instanciadas. Establece su ``Bounce`` en ``1`` y " "pulsa \"Play\"." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2734,14 +2791,14 @@ msgstr "" "valor modificado permanecerá. Presionando el botón volver restaurará el " "valor de la propiedad en la escena guardada." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Conclusión" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3675,11 +3732,12 @@ msgid "Groups" msgstr "Grupos" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:90 +#, fuzzy msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Los grupos en Godot trabajan como etiquetas que podrías haber encontrado en " "otro software. Se puede añadir un nodo a tantos grupos como se desees. Esta " @@ -3927,7 +3985,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "Únicamente GDScript crea variables globales para cada script nombrado." #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5568,7 +5626,7 @@ msgstr "" "Comienza añadiendo una nueva función ``Mob.gd``. ``queue_free()`` removerá " "el nodo actual al final del frame." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 msgid "" "Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` " "function, at the end." @@ -5576,7 +5634,7 @@ msgstr "" "Luego, en ``Main.gd`` agrega una nueva línea dentro de la función " "``_on_MobTimer_timeout()``, al final." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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 " @@ -5586,11 +5644,11 @@ msgstr "" "que responda a cualquier señal ``start_game`` emitida por el nodo ``HUD``, " "ejecutando su función ``_on_start_game()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "Finalizando" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -5600,12 +5658,12 @@ msgstr "" "están los pasos restantes para agregar más \"jugo\" y mejorar la experiencia " "de juego. Eres libre de expandir el juego con sus propias ideas." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "Imagen de fondo" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5620,7 +5678,7 @@ msgstr "" "``ColorRect`` tiene una sola propiedad: ``Color``. Escoge el color que " "quieras y arrastra el borde del ``ColorRect`` para que cubra la pantalla." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 msgid "" "You could also add a background image, if you have one, by using a " "``Sprite`` node." @@ -5628,11 +5686,11 @@ msgstr "" "También puedes agregar una imagen de fondo, si tienes una, utilizando un " "nodo ``Sprite``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "Efectos de sonido" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5644,7 +5702,7 @@ msgstr "" "sonido: \"House In a Forest Loop.ogg\" para música de fondo y \"gameover.wav" "\" para cuando el jugador pierde." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5656,7 +5714,7 @@ msgstr "" "uno, haz clic en la propiedad ``Stream``, selecciona \"Load\" y escoge el " "archivo de audio correspondiente." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5664,16 +5722,16 @@ msgstr "" "Para reproducir la música, agregua ``$Music.play()`` en la función " "``new_game()`` y ``$Music.stop()`` en ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" "Finalmente, agregua ``$DeathSound.play()`` en la función ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "Atajo del teclado" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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 " @@ -5683,7 +5741,7 @@ msgstr "" "si también pudiéramos iniciar el juego presionando una tecla en el teclado. " "Una forma de hacerlo es usando la propiedad \"Shortcut\" del nodo ``Button``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5699,7 +5757,7 @@ msgstr "" "Finalmente, en la propiedad _Action_, escriba el nombre \"ui_select\". Este " "es el evento de entrada predeterminado asociado con la barra espaciadora." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." @@ -5707,21 +5765,21 @@ msgstr "" "Ahora, cuando aparezca el botón de inicio, puedes hacer clic en él o " "presionar la barra espaciadora para iniciar el juego." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "Archivos del Proyecto" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" "Encontrarás una versión completada de este proyecto en las siguientes " "direcciones:" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "https://github.com/kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -5830,7 +5888,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "Plantillas de exportación" @@ -6425,11 +6483,11 @@ msgstr "" "desarrollados por los contribuidores desde el inicio." #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 +#, fuzzy msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" "Cualquiera puede incluir herramientas propietarias para las necesidades de " "sus proyectos — simplemente no se envían con el motor. Esto puede incluir " @@ -10346,7 +10404,7 @@ msgstr ":download:`robisplash_assets.zip `." #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -11849,68 +11907,75 @@ msgstr "" "vista de un usuario Unity y apunta a ayudarte a migrar tu experiencia actual " "en Unity al mundo de Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "Diferencias" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licencia" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" "Licencia propietaria, cerrada y libre con límites de ingresos y " "restricciones de uso" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" "Licencia MIT, libre y completamente open source sin ninguna restricción" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "OS (editor)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "Windows, macOS, Linux (no oficial y sin soporte)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "OS (exportar)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**Escritorio:** Windows, macOS, Linux" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**Móvil:** Android, iOS, Windows Phone, Tizen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "**Web:** WebAssembly o asm.js" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "**Consolas:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" @@ -11918,43 +11983,43 @@ msgstr "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "**TV:** Android TV, Samsung SMART TV, tvOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "**Escritorio:** Windows, macOS, X11" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "**Móvil:** Android, iOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "**Web:** WebAssembly" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "**Consolas:** Ver :ref:`doc_consoles`" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "**VR:** Oculus Rift, SteamVR" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "Sistema de escenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "Componente/Escena (GameObject > Componente)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "Prefabs" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" @@ -11962,80 +12027,75 @@ msgstr "" ":ref:`Árbol de escenas y nodos `, permitiendo que las " "escenas se aniden y/o hereden otras escenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "Herramientas de terceros" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "Visual Studio o VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr ":ref:`Los editores externos son posibles `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" ":ref:`Android SDK para exportación a Android `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" -msgstr "Funciones destacadas" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +#, fuzzy +msgid "Notable advantages" +msgstr "**Ventajas:**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "Gran comunidad" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "Gran almacén de recursos" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "Sistema de Escenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr ":ref:`Canalización de Animaciones`" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr ":ref:`Shaders fáciles de escribir `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "Depuración en el dispositivo" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "El editor" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 +#, fuzzy msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" "El motor de Godot proporciona un editor rico en características que te " "permite construir tus juegos. Las imágenes de abajo muestran ambos editores " "con bloques de color para indicar funcionalidades comunes." -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" -"Ten en cuenta que el editor Godot te permite acoplar cada panel al lado del " -"editor de escenas que desees." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 +#, fuzzy msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" "Aunque ambos editores puedan parecer similares, hay muchas diferencias bajo " "la superficie. Ambos permiten organizar el proyecto utilizando el sistema de " @@ -12044,26 +12104,27 @@ msgstr "" "contribuye a que Godot sea mucho más amigable con sistemas VCS como Git, " "Subversion o Mercurial." -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 +#, fuzzy msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" "El panel de Escenas de Godot es similar al panel de Jerarquía de Unity, pero " "como cada nodo tiene una función específica, el enfoque utilizado por Godot " "es más descriptivo visualmente. En otras palabras, es más fácil entender lo " "que hace una escena específica a primera vista." -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 +#, fuzzy msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" "El Inspector en Godot es más minimalista y está diseñado para mostrar sólo " "propiedades. Gracias a esto, los objetos pueden exportar una cantidad mucho " @@ -12073,12 +12134,13 @@ msgstr "" "colores, texturas, enumeraciones o incluso enlaces a recursos en tiempo real " "sin necesidad de utilizar código." -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 +#, fuzzy msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" "Finalmente, la Barra de herramientas en la parte superior de la pantalla es " "similar en el sentido de que permite controlar la reproducción del proyecto, " @@ -12086,19 +12148,20 @@ msgstr "" "se ejecutan dentro del editor (pero el árbol y los objetos todavía se pueden " "explorar en la ventana del depurador)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 +#, fuzzy msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" "Este método tiene la desventaja no poder explorar el juego actual desde " "otros ángulos (aunque esto podría ser soportado en el futuro y actualmente " "ya es posible mostrar gizmos de colisión en el juego actual), pero a cambio " "tiene varias ventajas:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." @@ -12106,7 +12169,7 @@ msgstr "" "Ejecutar el proyecto y cerrarlo es rápido (Unity tiene que guardar, ejecutar " "el proyecto, cerrar el proyecto, y luego recargar el estado anterior)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -12118,50 +12181,55 @@ msgstr "" "sincronizados) cuando el juego está cerrado. Esto permite flujos de trabajo " "fantásticos, como crear niveles mientras los reproduces." -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" "El editor es más estable porque el juego se ejecuta en un proceso separado." -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 +#, fuzzy msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" "Finalmente, la barra de herramientas superior incluye un menú para " "depuración remota. Estas opciones facilitan la implementación en un " "dispositivo (teléfono, tableta o navegador conectado a través de HTML5) y la " "depuración/edición en vivo en él después de exportar el juego." -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "El sistema de escenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 +#, fuzzy msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" "Esta es la diferencia más importante entre Unity y Godot y, de hecho, la " "característica favorita de la mayoría de los usuarios de Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 +#, fuzzy msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" "El sistema de escenas de Unity consiste en integrar todos los recursos " "necesarios en una escena y enlazarlos entre sí mediante la configuración de " "componentes y scripts." -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 +#, fuzzy msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" "El sistema de escenas de Godot es diferente: en realidad consiste en un " "árbol hecho de nodos. Cada nodo tiene un propósito: Sprite, Mesh, Light, " @@ -12170,7 +12238,7 @@ msgstr "" "la escena principal. Esto significa que se puede componer una escena " "completa con escenas diferentes, almacenadas en diferentes archivos." -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" @@ -12178,23 +12246,23 @@ msgstr "" "Por ejemplo, piensa en un nivel de un juego de plataformas. Verías que está " "compuesto de múltiples elementos:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "Bloques" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "Mondedas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "El jugador" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "Los enemigos" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -12211,56 +12279,65 @@ msgstr "" "elementos de la escena para que puedan colisionar. Este principio es " "diferente en Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 +#, fuzzy msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." msgstr "" "En Godot, dividirías toda tu escena en 3 escenas separadas, más pequeñas, " "que luego colocarías en la escena principal." -#: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#, fuzzy +msgid "**A scene for the Player alone.**" msgstr "**Primero, una escena para el jugador únicamente.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#: ../../docs/getting_started/editor/unity_to_godot.rst:115 +#, fuzzy msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" "Considera que el jugador es un elemento reutilizable en otros niveles. Está " "compuesto de un nodo en particular: un nodo AnimatedSprite, el cual contiene " "las texturas o imágenes que forman las varias animaciones (por ejemplo, la " "animación de andar)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#, fuzzy +msgid "**A scene for the Enemy.**" msgstr "**Segundo, una escena para el Enemigo.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 +#, fuzzy msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" "Una vez más, un enemigo es un elemento reutilizable en otros niveles. Es " "casi igual que el nodo Player - las únicas diferencias son el script (que " "gestiona la IA, principalmente) y las texturas de sprite usadas por el " "AnimatedSprite." -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +#, fuzzy +msgid "**A Level scene.**" msgstr "**Por último, la escena del nivel.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 +#, fuzzy msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" "Se compone de Bricks (bloques, para plataformas), Coins (monedas, para que " "el jugador las tome) y un cierto número de instancias de la escena Enemy " @@ -12270,10 +12347,11 @@ msgstr "" "escenas de nivel. Por supuesto, puedes establecer diferentes propiedades " "para cada nodo Enemy (por ejemplo, para cambiar su color)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 +#, fuzzy msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " @@ -12286,7 +12364,7 @@ msgstr "" "relacionados con 2D), \"Spatial\" (tipo raíz de todos los nodos relacionados " "con 3D) o \"Control\" (tipo raíz de todos los nodos relacionados con GUI)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -12302,35 +12380,37 @@ msgstr "" "colisión. Godot dispone de varios tipos de nodos de colisión, dependiendo " "del uso (ver :ref:`Physics introduction `)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#, fuzzy msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" "Pregunta: ¿Cuáles son las ventajas de este sistema? ¿No aumentaría " "potencialmente este sistema la profundidad del árbol de la escena? Además, " "Unity permite organizar GameObjects poniéndolos en GameObjects vacíos." -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 +#, fuzzy msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" "En primer lugar, este sistema se acerca más al conocido paradigma orientado " "a objetos: Godot proporciona una serie de nodos que no son claramente " "\"Objetos de Juego\", pero que proporcionan a sus hijos sus propias " "capacidades: esto es herencia." -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 +#, fuzzy msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" "En segundo lugar, permite extraer un subárbol de escena para convertirlo en " "una escena propia, lo que responde a las preguntas segunda y tercera: " @@ -12340,47 +12420,36 @@ msgstr "" "cualquier nodo. Poner múltiples nodos en un GameObject vacío en Unity no " "proporciona la misma posibilidad, aparte de una organización visual." -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" -"Estos son los conceptos más importantes que necesitas recordar: \"nodo\", " -"\"nodo padre\" y \"nodo hijo\"." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "Organización del proyecto" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -"Anteriormente observamos que no existe una solución perfecta para establecer " -"una arquitectura de proyecto. Cualquier solución funcionará para Unity y " -"Godot, así que este punto tiene una importancia menor." -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 +#, fuzzy msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" "Sin embargo, a menudo observamos una arquitectura común para los proyectos " "de Unity, que consiste en tener una carpeta Assets en el directorio raíz que " "contiene varias carpetas, una por tipo de recurso: Audio, Graphics, Models, " "Materials, Scripts, Scenes, etc." -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 +#, fuzzy msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" "Como se ha descrito anteriormente, el sistema de escenas Godot permite " "dividir escenas en escenas más pequeñas. Dado que cada escena y subescena es " @@ -12388,31 +12457,33 @@ msgstr "" "proyecto de forma un poco diferente. Este wiki proporciona información al " "respecto: :ref:`doc_project_organization`." -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "¿Dónde están mis prefabs?" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 +#, fuzzy msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" "El concepto de prefabs que proporciona Unity es un elemento 'plantilla' de " "la escena. Es reutilizable, y cada instancia del prefab que existe en la " "escena es único, pero todos tienen las mismas propiedades definidas por el " "prefab." -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 +#, fuzzy msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" "Godot no proporciona prefabs como tales, pero esta funcionalidad se " "encuentra disponible gracias al sistema de escenas: como vimos el sistema de " @@ -12423,16 +12494,17 @@ msgstr "" "Sin embargo, cualquier cambio que se realice en la instancia no tendrá " "ningún impacto en la escena `plantilla'." -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 +#, fuzzy msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" "Para ser precisos, se pueden modificar los parámetros de la instancia en el " "panel Inspector. Sin embargo, los nodos que componen esta instancia están " @@ -12444,48 +12516,50 @@ msgstr "" "añadir nuevos hijos a todas las instancias de tu escena `plantilla', " "entonces necesitas añadirlo una vez en la escena `plantilla'." -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "Correspondencia del glosario" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "GameObject -> Nodo" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "Add a component -> Heredar" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" -msgstr "Prefab ->Rama externalizada" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "Scripting: GDScript, C# y Visual Script" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "Diseño" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#, fuzzy msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" "Como ya sabrás, Unity soporta C#. C# se beneficia de su integración con " "Visual Studio y otras características, como el tipado estático." -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 +#, fuzzy msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" "Godot proporciona su propio lenguaje de scripting, :ref:`GDScript " "` así como soporte para :ref:`Visual Script `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -12575,15 +12649,15 @@ msgstr "" "señales personalizadas y especificar cuándo se activan. Ver más en la :ref:" "`documentación de señales `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "Serialización de scripts" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "Unity puede manejar la serialización de scripts de dos maneras:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." @@ -12592,7 +12666,7 @@ msgstr "" "automáticamente si el tipo es un tipo serializable (``Dictionary`` no es " "serializable)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." @@ -12600,7 +12674,7 @@ msgstr "" "Explícita: los campos no públicos se pueden serializar usando el atributo " "``[SerializeField]``." -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -12615,7 +12689,7 @@ msgstr "" "clave ``export``. Consulte la:ref:`documentación de exportaciones " "` para obtener más información." -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -12630,11 +12704,11 @@ msgstr "" "personalizados serializables. Se puede encontrar más información sobre los " "recursos :ref:`aquí `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "Usando Godot en C++" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -12646,7 +12720,7 @@ msgstr "" "considerar el editor de Godot Engine como un \"juego\" escrito en C++ usando " "la API de Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -15196,11 +15270,18 @@ msgstr "" "palabra clave ``tool`` que se deberá escribir en la parte superior del " "archivo:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "Gestión de la memoria" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -15218,7 +15299,7 @@ msgstr "" "free(). Para evitar ciclos de referencia que no puedan ser liberados, se " "proporciona una función ``weakref`` para crear referencias débiles." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 msgid "" "Alternatively, when not using references, the " "``is_instance_valid(instance)`` can be used to check if an object has been " @@ -15228,43 +15309,102 @@ msgstr "" "``is_instance_valid(instance)`` puede usarse para comprobar si un objeto ha " "sido liberado." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 +#, fuzzy msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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 "" "Las señales son una forma de enviar mensajes que contienen notificaciones " "desde un objeto que puede ser escuchado por otros de forma genérica. Crea " "señales personalizadas para una clase usando la palabra clave ``signal``." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1490 +#, fuzzy +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 "" "Estas señales pueden ser conectadas a métodos de la misma forma en la que " "conectas señales propias de nodos tales como :ref:`class_Button` o :ref:" "`class_RigidBody`." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1493 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" -"He aquí un ejemplo donde se crea una señal personalizada en un script y en " -"otro se conecta dicha señal a un método, usando a su vez el método ref:" -"`Object.connect() ` method:" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1514 +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:1556 +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:1559 +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:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +#, fuzzy +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 "" "GDScript puede asociar argumentos a las conexiones entre una señal y un " "método. Cuando la señal es emitida, llamando así al método conectado, el " @@ -15272,38 +15412,33 @@ msgstr "" "realidad específicos a la conexión, en vez de serlos para la señal o el " "método, queriendo decir que cada conexión tiene asociaciones únicas." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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 "" -"He aquí un ejemplo donde se crea una conexión entre la señal ``pressed`` de " -"un botón y un método, asociando la instancia del botón con la conexión. El " -"manejador usa el argumento asociado para imprimir cual instancia del botón " -"fue presionada." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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 "" -"Las señales son generadas por el método :ref:`Object.emit_signal() " -"` el cual difunde la señal y los argumentos." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" msgstr "" -"Extendiendo un ejemplo previo para usar todas las prestaciones de las " -"señales en GDScript:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "Corrutinas con yield" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -15320,22 +15455,22 @@ msgstr "" "retornará lo que sea que la función retorne. Una vez resumido, el estado del " "objeto se tornará inválido. Aquí hay un ejemplo:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "Imprimirá:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" "También es posible pasar valores entre yield() y resume(), por ejemplo:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "Corrutinas y Señales" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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 " @@ -15346,7 +15481,7 @@ msgstr "" "Cuando la señal se recibe, la ejecución continuará. Aquí hay algunos " "ejemplos:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 msgid "" "Coroutines themselves use the ``completed`` signal when they transition into " "an invalid state, for example:" @@ -15354,18 +15489,18 @@ msgstr "" "Las corrutinas mismas usan la señal ``completed`` cuando pasan a un estado " "inválido, por ejemplo:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" "``my_func`` sólo continuará la ejecución una vez que se hayan presionado " "ambos botones." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "Palabra clave Onready" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -15378,7 +15513,7 @@ msgstr "" "subnodos sólo se pueden obtener cuando se realiza la llamada a un Node." "_ready() se ha realizado." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -15391,11 +15526,11 @@ msgstr "" "momento en que _ready es ejecutado. Esta palabra reemplaza el código de " "abajo en una sola línea:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "Palabra clave Assert" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -16045,7 +16180,7 @@ msgid "**NEVER**:" msgstr "**NUNCA**:" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "Convenciones para la definición de nombres" @@ -18795,7 +18930,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "Ejemplo" @@ -19824,11 +19959,11 @@ msgid "Language specification" msgstr "Especificación del lenguaje" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 +#, fuzzy msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" "Actualmente, Godot utiliza la versión 6.0 de C# en su motor y código fuente " "de ejemplo. Por lo tanto, antes de pasar a una versión más nueva, hay que " @@ -19851,36 +19986,43 @@ msgid "Formatting conventions" msgstr "Convenciones de Formato" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +#, fuzzy +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" "Si creas un nuevo archivo, asegúrate de que utiliza caracteres de salto de " "línea (*LF*) para separar líneas, no *CRLF* o *CR*." #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 +#, fuzzy msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" "Utilice la codificación UTF-8 sin BOM (BOM )." #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 +#, fuzzy msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" "Utilice 4 espacios en lugar de tabuladores para la sangría (lo que se " "denomina 'tabulaciones suaves')." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "Saltos de línea y líneas en blanco" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 +#, fuzzy msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" @@ -19890,42 +20032,43 @@ msgstr "" "corchete asociado con una estructura de control en la siguiente línea, " "identado al mismo nivel:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" "Sin embargo, puedes optar por omitir los saltos de línea dentro de llaves:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "Para operadores de miembros simples." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "Para objetos simples, arrays o inicializadores de colección." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" "Para abstraciones de propiedades auto, indexaciones, o declaraciones de " "evento." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "Inserte una línea en blanco:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#, fuzzy +msgid "After a list of ``using`` statements." msgstr "Después de *usar* la lista de sentencias." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 msgid "Between method, properties, and inner type declarations." msgstr "Entre métodos, propiedades y declaraciones de tipo internas." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " @@ -19935,104 +20078,101 @@ msgstr "" "relevancia. En ese caso, considera insertar una línea en blanco entre los " "grupos para facilitar la lectura." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "Evita insertar una línea en blanco:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "Después de un corchete de apertura ``{``." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "Antes de un corchete de cierre ``}`." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#, fuzzy +msgid "After a comment block or a single-line comment." msgstr "" "Después de un bloque de comentarios, o un comentario de una sola línea." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "Adyacente a otra línea en blanco." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "Usando espacios" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "Inserta un espacio:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "Alrededor de un operador binario y ternario." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#, fuzzy msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" "Entre un paréntesis de apertura y las palabras clave *if*, *for*, *foreach*, " "*catch*, *while*, *lock* o *using*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "Antes y dentro de un bloque de accesorios de una sola línea." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "Entre los accesorios en un bloque de accesorios de una sola línea." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "Después de una coma." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#, fuzzy +msgid "After a semicolon in a ``for`` statement." msgstr "Después de un punto y coma en una sentencia *for*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#, fuzzy +msgid "After a colon in a single line ``case`` statement." msgstr "Después de una sentencia de dos puntos en una sola línea *case*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "En torno a los dos puntos en una declaración de tipo." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "En torno a una flecha lambda." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 +#, fuzzy msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" "Después de un símbolo de comentario de una sola línea ('//'), y antes de él " "si se utiliza al final de una línea." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "No uses un espacio:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "Después de un paréntesis en conversión de tipo." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "inicialización de llaves de una sola línea." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" @@ -20040,51 +20180,57 @@ msgstr "" "El siguiente ejemplo muestra un uso adecuado de los espacios, de acuerdo con " "algunas de las convenciones antes mencionadas:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 +#, fuzzy msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" "Utiliza *PascalCase* para todos los espacios de nombres, tipo de nombre e " "identificadores de miembro (es decir, métodos, propiedades, constantes, " "eventos), excepto para campos privados:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 +#, fuzzy msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" msgstr "" "Utiliza *camelCase* para todos los demás identificadores (es decir, " "variables locales, argumentos de método), y utiliza underscore('_') como " "prefijo para los campos privados (pero no para los métodos o propiedades, " "como se explicó anteriormente):" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +#, fuzzy msgid "" "There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" "Hay una excepción con los acrónimos que consiste en dos letras como *'UI'* " "que debe escribirse en mayúsculas cuando se usa en PascalCase, y en " "minúscula en caso contrario." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#, fuzzy msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" "Tenga en cuenta que *'id'* **no** es un acrónimo, por lo que debe tratarse " "como un identificador normal:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 +#, fuzzy msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" "En general, se desaconseja utilizar un nombre de tipo como prefijo de un " "identificador como *'string strText'* o *'float fPower'*, por ejemplo. Sin " @@ -20092,7 +20238,7 @@ msgstr "" "**deberían** ser nombradas usando una mayúscula *'I'* como prefijo, como " "*'IInventoryHolder'* o *'IDamageable'*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." @@ -20100,25 +20246,28 @@ msgstr "" "Por último, considera elegir nombres descriptivos y no trates de acortarlos " "demasiado si eso afecta la legibilidad." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#, fuzzy msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" "Por ejemplo, si quieres escribir código para encontrar un enemigo cercano y " "golpearlo con un arma, se prefiere" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" msgstr "En vez de," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "Variables locales tipadas implícitamente" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 +#, fuzzy msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" @@ -20126,43 +20275,48 @@ msgstr "" "locales, pero hazlo **sólo cuando el tipo sea evidente** desde el lado " "derecho de la asignación:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "Otras consideraciones" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "Usa modificadores de acceso explícito." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "Use propiedades en lugar de campos no privados." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 +#, fuzzy msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" "Use modificadores en este orden: *'public/protected/private/internal virtual/" "override/abstract/new static readonly'*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#, fuzzy msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" "Evitar el uso de nombres completamente calificados o prefijos *'this.'* para " "miembros cuando no sea necesario." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#, fuzzy +msgid "Remove unused ``using`` statements and unnecessary parentheses." msgstr "Elimine las frases *'using'* no utilizadas y paréntesis innecesarios." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#, fuzzy +msgid "Consider omitting the default initial value for a type." msgstr "Considere la omisión del valor inicial predeterminado para un tipo." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." @@ -20170,7 +20324,7 @@ msgstr "" "Considere usar operadores condicion nula(null-conditional) o inicializadores " "de tipo(type initializers) para hacer el código más compacto." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -23927,12 +24081,18 @@ msgstr "" "siguientes pasos, reemplázalo con el nombre que usaste en su lugar." #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" "Cuando la exportación se completa, la carpeta de salida debe tener el " "siguiente aspecto:" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." @@ -23940,11 +24100,11 @@ msgstr "" "Al abrir **exported_xcode_project_name.xcodeproj** te permite compilar y " "desplegar como cualquier otra aplicación iOS." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "Consideraciones activas del desarrollo" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." @@ -23953,7 +24113,7 @@ msgstr "" "publicación, pero tienes que reexportar cada vez que haces un cambio en " "Godot." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." @@ -23961,11 +24121,11 @@ msgstr "" "Durante el desarrollo, puedes acelerar este proceso enlazando tus archivos " "de proyecto Godot directamente a tu aplicación." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "En el siguiente ejemplo:" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." @@ -23973,25 +24133,25 @@ msgstr "" "**exported_xcode_project_name** es el nombre de la aplicación iOS exportada " "(como arriba)." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "**godot_project_to_export** es el nombre del proyecto Godot." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "Pasos para enlazar una carpeta de proyecto Godot a Xcode" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "Empieza desde un proyecto iOS exportado (sigue los pasos anteriores)." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" "En Finder, arrastra la carpeta del proyecto Godot al navegador de archivos " "Xcode." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " @@ -24001,17 +24161,17 @@ msgstr "" "carpeta** está seleccionado. Esto significa que podrás continuar editando tu " "proyecto Godot en su ubicación actual." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" "Visualiza la carpeta **godot_project_to_export** en el navegador de archivos " "Xcode." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "Eliminar **exported_xcode_project_name.pck** del proyecto Xcode." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " @@ -24021,7 +24181,7 @@ msgstr "" "string llamada **godot_path** (este es el nombre real de la clave) con un " "valor **godot_project_to_export** (este es el nombre de tu proyecto)" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." @@ -24029,12 +24189,12 @@ msgstr "" "¡Eso es todo! Ahora puedes editar tu proyecto en el editor Godot y " "compilarlo en Xcode cuando quieras ejecutarlo en un dispositivo." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "Servicios para iOS" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -33377,6 +33537,22 @@ msgid "Clearcoat" msgstr "Clearcoat" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " @@ -33387,12 +33563,12 @@ msgstr "" "pintura de automóviles y juguetes. En la práctica, es un specular blob más " "pequeño añadido sobre el material existente." -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "Anisotropy" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -33404,11 +33580,11 @@ msgstr "" "materiales como el aluminio pulido sean más realistas. Funciona " "especialmente bien cuando se combina con flowmaps." -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "Ambient Occlusion" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -33424,11 +33600,11 @@ msgstr "" "Occlusion, nada superará la calidad de un mapa de AO bien bakeado. Se " "recomienda prebakear Ambient Occlusion siempre que sea posible." -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Profundidad" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -33444,11 +33620,11 @@ msgstr "" "obtener mejores resultados, se debe utilizar *Depth* junto con normal " "mapping." -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "Subsurface Scattering" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " @@ -33458,11 +33634,11 @@ msgstr "" "y luego sale. Es útil para hacer pieles realistas, mármol, líquidos de " "colores, etc." -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "Transmission" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " @@ -33472,12 +33648,12 @@ msgstr "" "lado oscuro (lado opuesto a la luz). Esto funciona bien para objetos " "delgados como hojas de árboles/plantas, césped, orejas humanas, etc." -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "Refraction" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -33489,11 +33665,11 @@ msgstr "" "lugar. Esto permite distorsionar la transparencia de manera similar a la " "refracción en la vida real." -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "Detail" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " @@ -33504,11 +33680,11 @@ msgstr "" "UV secundario o modo triplanar, se pueden lograr muchas texturas " "interesantes." -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "UV1 y UV2" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " @@ -33518,11 +33694,11 @@ msgstr "" "útiles para ambient occlusion o emission (baked light). Los UVs pueden ser " "escalados y desplazados, lo que es útil en texturas con repetición." -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "Mapeado Triplanar" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -33534,7 +33710,7 @@ msgstr "" "\"Autotexture\". Las texturas son muestreadas en X, Y y Z y mezcladas por la " "normal. El mapeo triplanar puede ser espacio de mundo o espacio de objeto." -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." @@ -33543,11 +33719,11 @@ msgstr "" "mismo material con el triplanar del mundo, para que los la textura pueda " "continuar con suavidad entre las partes." -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "Desvanecimiento de proximidad y distancia" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -33562,7 +33738,7 @@ msgstr "" "útil para entradas de luz o indicadores que solo están presentes a cierta " "distancia." -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." @@ -33570,11 +33746,11 @@ msgstr "" "Hay que tener en cuenta que habilitarlos también activa alpha blending, por " "lo que abusar de ellos durante toda una escena no suele ser una buena idea." -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "Prioridad de Renderización" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -33725,9 +33901,11 @@ msgstr "" "que mejor funcione para ti." #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 +#, fuzzy msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" "**Contact**: Realiza un raycast corto en el espacio de la pantalla para " "reducir el hueco generado por la inclinación." @@ -34221,7 +34399,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -34296,13 +34474,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -34311,30 +34496,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "Las principales desventajas del ``GIProbe`` son:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -34342,63 +34527,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "Agregando luces" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -34406,82 +34591,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -35085,7 +35270,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -35093,28 +35278,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -35124,7 +35309,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -35134,57 +35319,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "Efectos de medio y post proceso" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -35193,7 +35378,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -35201,24 +35386,24 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." @@ -35226,29 +35411,29 @@ msgstr "" "**Fundido de salida** permite ajustar la curva de fundido de salida, de modo " "que el límite de paso se fundirá suavemente." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -35258,28 +35443,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -35287,47 +35472,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -35336,65 +35521,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -35404,27 +35589,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -35432,78 +35617,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -36808,23 +36993,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -36832,90 +37017,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "Vamos a repasar cada una de las variables de clase:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -36924,30 +37109,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -36955,120 +37140,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "Primero ponemos ``dir`` a un :ref:`Vector3 `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -37076,13 +37261,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -37090,44 +37275,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -37135,14 +37320,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -37151,37 +37336,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -37189,7 +37374,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -37198,7 +37383,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -37206,7 +37391,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -37214,12 +37399,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -37227,30 +37412,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -37258,30 +37443,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -37289,14 +37474,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -37304,7 +37489,7 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" @@ -37312,80 +37497,80 @@ msgstr "" "¡Todo el código en ``process_movement`` es exactamente igual que el código " "de movimiento de la demo de Personaje Cinemático!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -37393,46 +37578,46 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." @@ -37440,17 +37625,17 @@ msgstr "" "Esto obtiene el nodo ``Flashlight`` (linterna) y lo asigna a la variable " "``flashlight``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -37459,7 +37644,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -37467,44 +37652,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -37514,19 +37699,19 @@ msgstr "" msgid "Final notes" msgstr "Notas finales" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" @@ -37534,14 +37719,14 @@ msgstr "" "¡En este punto hemos recreado la demo del Personaje Cinemático desde una " "perspectiva en primera persona con sprint y una luz de flash!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -37551,7 +37736,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -45034,7 +45219,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -45045,99 +45230,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -45145,11 +45330,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -45160,26 +45345,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -45188,7 +45373,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -46289,7 +46474,7 @@ msgstr "" "``move_and_slide()`` no provee la respuesta deseada." #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "Ejemplos" @@ -52818,10 +53003,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "Iternacionalización" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "Internacionalizando los juegos" @@ -61702,7 +61883,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -73198,6 +73379,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -73208,52 +73393,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -75115,9 +75300,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -75146,7 +75331,7 @@ msgstr "Licencias de terceros" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -75174,7 +75359,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -75198,9 +75383,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -75628,7 +75813,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -75914,7 +76099,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -76075,17 +76260,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -76094,7 +76278,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -76167,7 +76351,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -76196,12 +76380,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -76221,57 +76404,54 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" -msgstr "" +#, fuzzy +msgid "PulseAudio development libraries" +msgstr "Consideraciones activas del desarrollo" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -76279,7 +76459,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -76287,57 +76467,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -76348,6 +76537,10 @@ msgstr "Compilando para macOS" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -77263,7 +77456,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -77271,18 +77463,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "Variables de entorno" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -77290,27 +77482,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "Generar el pegamento" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -77318,21 +77510,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -77343,12 +77535,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -77356,7 +77548,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -77365,28 +77557,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "Y plantillas de exportación con soporte para Mono:" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -77396,7 +77588,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -77406,19 +77598,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "Ejemplo (Windows)" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "Ejemplo (X11)" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -77427,7 +77619,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -77435,14 +77627,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -77451,57 +77643,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -77512,7 +77704,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -77522,55 +77714,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Exportación para Android" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -77579,65 +77771,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "Opciones de la línea de comandos" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -77768,7 +77960,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" @@ -83741,6 +83933,87 @@ msgstr "" "`Zeef Godot Engine: Un directorio de recursos supervisado por Andre Schmitz " "`_" +#~ msgid "" +#~ ":ref:`Autoloads versus internal nodes " +#~ "`" +#~ msgstr "" +#~ ":ref: 'Autocargas versus Nodos internos " +#~ "" + +#~ msgid "" +#~ ":ref:`Animating thousands of fish with MultiMesh " +#~ "`" +#~ msgstr "" +#~ ":ref:`Animación de miles de objetos con MultiMesh " +#~ "`" + +#~ msgid ":ref:`Advanced post-processing `" +#~ msgstr ":ref:`Post procesado avanzado `" + +#~ msgid "Killer features" +#~ msgstr "Funciones destacadas" + +#~ msgid "" +#~ "Note that Godot editor allows you to dock each panel at the side of the " +#~ "scene editor you wish." +#~ msgstr "" +#~ "Ten en cuenta que el editor Godot te permite acoplar cada panel al lado " +#~ "del editor de escenas que desees." + +#~ msgid "" +#~ "These are the most important concepts you need to remember: \"node\", " +#~ "\"parent node\", and \"child node\"." +#~ msgstr "" +#~ "Estos son los conceptos más importantes que necesitas recordar: \"nodo\", " +#~ "\"nodo padre\" y \"nodo hijo\"." + +#~ msgid "" +#~ "We previously observed that there is no perfect solution to set a project " +#~ "architecture. Any solution will work for Unity and Godot, so this point " +#~ "has a lesser importance." +#~ msgstr "" +#~ "Anteriormente observamos que no existe una solución perfecta para " +#~ "establecer una arquitectura de proyecto. Cualquier solución funcionará " +#~ "para Unity y Godot, así que este punto tiene una importancia menor." + +#~ msgid "Prefab -> Externalized branch" +#~ msgstr "Prefab ->Rama externalizada" + +#~ msgid "" +#~ "Here's an example that creates a custom signal in one script and connects " +#~ "the custom signal to a method in a separate script, using the :ref:" +#~ "`Object.connect() ` method:" +#~ msgstr "" +#~ "He aquí un ejemplo donde se crea una señal personalizada en un script y " +#~ "en otro se conecta dicha señal a un método, usando a su vez el método ref:" +#~ "`Object.connect() ` method:" + +#~ msgid "" +#~ "Here is an example that creates a connection between a button's " +#~ "``pressed`` signal and a method, binding the button instance to the " +#~ "connection. The handler uses the bound argument to print which button " +#~ "instance was pressed." +#~ msgstr "" +#~ "He aquí un ejemplo donde se crea una conexión entre la señal ``pressed`` " +#~ "de un botón y un método, asociando la instancia del botón con la " +#~ "conexión. El manejador usa el argumento asociado para imprimir cual " +#~ "instancia del botón fue presionada." + +#~ msgid "" +#~ "Signals are generated by the :ref:`Object.emit_signal() " +#~ "` method which broadcasts the signal and " +#~ "arguments." +#~ msgstr "" +#~ "Las señales son generadas por el método :ref:`Object.emit_signal() " +#~ "` el cual difunde la señal y los " +#~ "argumentos." + +#~ msgid "" +#~ "Extending a previous example to use all the features of GDScript signals:" +#~ msgstr "" +#~ "Extendiendo un ejemplo previo para usar todas las prestaciones de las " +#~ "señales en GDScript:" + #~ msgid "" #~ "Consider breaking a line when it's longer than 100 characters. And it's " #~ "also a good practice to insert a line feed (LF) character at the end of a " diff --git a/weblate/es_MX.po b/weblate/es_MX.po index 2947d3c5cb..fd510f8b13 100644 --- a/weblate/es_MX.po +++ b/weblate/es_MX.po @@ -26,7 +26,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:06+0000\n" "Last-Translator: Gerardo Gonzalez \n" "Language-Team: Spanish (Mexico) `_, o en el canal ``#godotengine-doc`` en `irc." "freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "La documentación principal del sitio está organizada en las siguientes " "secciones:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Aspecto General" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Para empezar" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutoriales" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Desarrollo" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Comunidad" @@ -1307,373 +1311,390 @@ msgstr "" "no se reflejan en este documento." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Nuevos tutoriales desde la versión 3.0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:19 +msgid ":ref:`doc_localization_using_gettext`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "Nuevos tutoriales desde la versión 3.0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Paso a paso" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr "referencia :ref: `Señales `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr "Referencia :ref:`Exportando `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Flujo de trabajo del proyecto" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +#, fuzzy +msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`Custom builds for Android `" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "Mejores prácticas:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr "Referencia :ref: `Introducción `" -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr "" "Referencia :ref: `Qué son las clases de Godot `" -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr "Referencia :ref: `Organización de la escena `" -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "Referencia :ref: `Escenas y scripts `" -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" -":ref:`Autoloads versus internal nodes `" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" +":ref:`Autoloads versus internal nodes `" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" +msgstr "Modificar la interfaz" + +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" +msgstr "Notificaciones" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "Scripting (Escribiendo código)" -#: ../../docs/about/docs_changelog.rst:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" +msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" +msgstr "referencia :ref: `Señales `" + +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:67 +#: ../../docs/about/docs_changelog.rst:75 #, fuzzy -msgid ":ref:`AnimationTree `" +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:72 +#: ../../docs/about/docs_changelog.rst:80 #, fuzzy -msgid ":ref:`Containers `" +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 #, fuzzy msgid "Your First Shader Series:" msgstr "Tu primer juego" -#: ../../docs/about/docs_changelog.rst:88 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy -msgid ":ref:`What are shaders? `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" "Referencia :ref: `Qué son las clases de Godot `" -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -#, fuzzy -msgid ":ref:`Shaders `" -msgstr ":ref:`AnimatedSprite `" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" -msgstr "" +#, fuzzy +msgid ":ref:`doc_your_first_canvasitem_shader`" +msgstr "Tu primer juego" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" -msgstr "" +#, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" +msgstr "Tu primer juego" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" +msgstr ":ref:`AnimatedSprite `" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" +msgstr ":ref:`AnimatedSprite `" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr ":ref:`AnimatedSprite `" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Notificaciones" -#: ../../docs/about/docs_changelog.rst:118 +#: ../../docs/about/docs_changelog.rst:126 #, fuzzy -msgid ":ref:`Using MultiMesh `" +msgid ":ref:`doc_using_multimesh`" msgstr "referencia :ref: `Señales `" -#: ../../docs/about/docs_changelog.rst:119 +#: ../../docs/about/docs_changelog.rst:127 #, fuzzy -msgid ":ref:`Using servers `" +msgid ":ref:`doc_using_servers`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Creando contenido" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" +msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Eligiendo animaciones" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -2256,7 +2277,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2663,15 +2684,17 @@ msgstr "" #, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "También puede ajustar instancias individuales. Establezca el valor de rebote " "en ``0.5`` y luego en la escena ``Main``, seleccione una de las bolas " "instanciadas. Establezca su ``Bounce`` a ``1`` y presione \"Play" "\" (reproducir/ejecutar)." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2687,14 +2710,14 @@ msgstr "" "valor personalizado permanecerá. Presionando el botón de revertir restaurará " "la propiedad al valor en la escena guardada." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Conclusión" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 #, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " @@ -3648,8 +3671,8 @@ msgstr "Grupos" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Los nodos se pueden agregar a grupos, tantas como se desee por nodo, y es " "una característica útil para organizar escenas grandes. Hay dos maneras de " @@ -3901,7 +3924,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "Solo GDScript crea variables globales para cada script con nombre." #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5428,36 +5451,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5467,17 +5490,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5485,7 +5508,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5493,28 +5516,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5524,25 +5547,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "Archivos de proyecto" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -5619,7 +5642,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -6042,9 +6065,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -8807,7 +8829,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -9892,223 +9914,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -10116,65 +10138,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -10184,59 +10207,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -10246,142 +10271,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -10389,7 +10405,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -10397,30 +10413,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -10428,7 +10443,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -10436,28 +10451,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Animación de Sprite" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -10466,7 +10481,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -10475,11 +10490,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -10487,7 +10502,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -12581,11 +12596,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -12596,67 +12618,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -12666,43 +12750,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -12710,7 +12794,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -12718,11 +12802,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -13235,7 +13319,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -15335,7 +15419,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -16167,10 +16251,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -16186,274 +16269,271 @@ msgid "Formatting conventions" msgstr "Creando contenido" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 #, fuzzy msgid "Using spaces" msgstr "Crear instancias de escenas" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -19428,91 +19508,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -26753,18 +26839,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -26772,11 +26874,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -26786,11 +26888,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -26799,34 +26901,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -26834,33 +26936,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -26868,17 +26970,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -26887,17 +26989,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -27017,7 +27119,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -27434,7 +27537,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -27509,13 +27612,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -27524,31 +27634,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Las principales razones son:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -27556,64 +27666,64 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 #, fuzzy msgid "Adding lights" msgstr "Agregar una secuencia de comandos (un script)" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -27621,82 +27731,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -28298,7 +28408,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -28306,28 +28416,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -28337,7 +28447,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -28347,57 +28457,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -28406,7 +28516,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -28414,52 +28524,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -28469,28 +28579,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -28498,47 +28608,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -28547,65 +28657,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -28615,27 +28725,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -28643,78 +28753,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -29966,23 +30076,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -29990,90 +30100,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -30082,30 +30192,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -30113,120 +30223,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -30234,13 +30344,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -30248,44 +30358,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -30293,14 +30403,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -30309,37 +30419,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -30347,7 +30457,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -30356,7 +30466,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -30364,7 +30474,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -30372,12 +30482,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -30385,30 +30495,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -30416,30 +30526,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -30447,14 +30557,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -30462,86 +30572,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -30549,62 +30659,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -30613,7 +30723,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -30621,44 +30731,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -30668,32 +30778,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -30703,7 +30813,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -38002,7 +38112,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -38013,99 +38123,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -38113,11 +38223,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -38128,26 +38238,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -38156,7 +38266,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -38947,7 +39057,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -44580,10 +44690,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -53239,7 +53345,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -64088,6 +64194,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -64098,52 +64208,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -66005,9 +66115,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -66036,7 +66146,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -66064,7 +66174,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -66088,9 +66198,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -66495,7 +66605,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -66781,7 +66891,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -66942,17 +67052,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -66961,7 +67070,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -67034,7 +67143,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -67063,12 +67172,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -67088,57 +67196,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -67146,7 +67250,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -67154,57 +67258,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -67215,6 +67328,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -68118,7 +68235,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -68126,18 +68242,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -68145,27 +68261,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -68173,21 +68289,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -68198,12 +68314,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -68211,7 +68327,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -68220,28 +68336,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -68251,7 +68367,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -68261,19 +68377,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -68282,7 +68398,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -68290,14 +68406,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -68306,57 +68422,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -68367,7 +68483,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -68377,55 +68493,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Crear nodos" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -68434,65 +68550,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -68623,7 +68739,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/fa.po b/weblate/fa.po index f2c42cb6df..044170e20a 100644 --- a/weblate/fa.po +++ b/weblate/fa.po @@ -16,7 +16,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-05-21 11:16+0000\n" "Last-Translator: hdteav \n" "Language-Team: Persian `_ با برچسب " "``#godotengine-doc`` به بحث و گفتگو بپردازید!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "مستندات اصلی سایت از این بخش ها تشکیل می‌شوند:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "کلی" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "شروع" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "آموزش‌ها" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "توسعه" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "انجمن" @@ -1051,362 +1055,362 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" +msgstr "شرط" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "تولید محتوا" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "تولید محتوا" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "تولید محتوا" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1868,7 +1872,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2163,11 +2167,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2177,14 +2183,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2864,8 +2870,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3043,7 +3049,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4244,36 +4250,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4283,17 +4289,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4301,7 +4307,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4309,28 +4315,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4340,25 +4346,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4435,7 +4441,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4859,9 +4865,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7623,7 +7628,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8708,223 +8713,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "مجوز" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8932,65 +8937,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9000,59 +9006,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9062,142 +9070,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9205,7 +9204,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9213,30 +9212,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9244,7 +9242,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9252,27 +9250,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9281,7 +9279,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9290,11 +9288,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9302,7 +9300,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11398,11 +11396,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11413,67 +11418,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11483,43 +11550,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11527,7 +11594,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11535,11 +11602,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12052,7 +12119,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14141,7 +14208,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14972,10 +15039,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14991,273 +15057,270 @@ msgid "Formatting conventions" msgstr "تولید محتوا" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18239,91 +18302,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25548,18 +25617,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25567,11 +25652,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25581,11 +25666,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25594,34 +25679,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25629,33 +25714,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25663,17 +25748,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25682,17 +25767,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25812,7 +25897,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26229,7 +26315,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26304,13 +26390,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26319,30 +26412,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26350,63 +26443,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26414,82 +26507,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27087,7 +27180,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27095,28 +27188,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27126,7 +27219,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27136,57 +27229,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27195,7 +27288,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27203,52 +27296,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27258,28 +27351,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27287,47 +27380,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27336,65 +27429,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27404,27 +27497,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27432,78 +27525,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28744,23 +28837,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28768,90 +28861,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28860,30 +28953,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28891,120 +28984,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29012,13 +29105,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29026,44 +29119,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29071,14 +29164,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29087,37 +29180,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29125,7 +29218,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29134,7 +29227,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29142,7 +29235,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29150,12 +29243,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29163,30 +29256,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29194,30 +29287,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29225,14 +29318,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29240,86 +29333,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29327,62 +29420,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29391,7 +29484,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29399,44 +29492,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29446,32 +29539,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29481,7 +29574,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36774,7 +36867,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36785,99 +36878,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36885,11 +36978,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36900,26 +36993,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36928,7 +37021,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37719,7 +37812,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43340,10 +43433,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51991,7 +52080,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62815,6 +62904,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62825,52 +62918,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64697,9 +64790,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64728,7 +64821,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64756,7 +64849,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64780,9 +64873,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65187,7 +65280,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65473,7 +65566,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65634,17 +65727,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65653,7 +65745,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65726,7 +65818,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65755,12 +65847,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65780,57 +65871,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65838,7 +65925,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65846,57 +65933,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65907,6 +66003,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66810,7 +66910,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66818,18 +66917,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66837,27 +66936,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66865,21 +66964,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66890,12 +66989,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66903,7 +67002,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66912,28 +67011,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66943,7 +67042,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66953,19 +67052,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66974,7 +67073,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66982,14 +67081,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66998,57 +67097,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67059,7 +67158,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67069,55 +67168,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "تولید محتوا" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67126,66 +67225,66 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 #, fuzzy msgid "Command-line options" msgstr "شرط" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67316,7 +67415,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/fi.po b/weblate/fi.po index f793245e87..82070715c0 100644 --- a/weblate/fi.po +++ b/weblate/fi.po @@ -16,7 +16,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:05+0000\n" "Last-Translator: Tapani Niemi \n" "Language-Team: Finnish `_, tai ``#godotengine-doc`` IRC-kanavalla `irc.freenode." "net `_ palvelimella!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Päädokumentaatio tällä sivustolla on järjestelty seuraaviin lukuihin:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Yleistä" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Alkuun pääseminen" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutoriaalit" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Kehitys" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Yhteisö" @@ -1277,378 +1281,386 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 +msgid "New tutorials since version 3.1" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Kääntäminen" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 #, fuzzy msgid "Step-by-step" msgstr "Kohta kohdalta" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" +msgstr ":ref:`AnimatedSprite `" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Projektin työnkulku" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -#, fuzzy -msgid ":ref:`Scene organization `" -msgstr ":ref:`Animaatiolinjasto `" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -#, fuzzy -msgid ":ref:`Godot notifications `" -msgstr ":ref:`Animaatiolinjasto `" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr ":ref:`Animaatiolinjasto `" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" +msgstr "Muokkaa käyttöliittymää" + +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" +msgstr ":ref:`Animaatiolinjasto `" + +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" +msgstr "Eroavaisuudet" + +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" +msgstr "Eroavaisuudet" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "Skriptaus" -#: ../../docs/about/docs_changelog.rst:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" +msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:62 #, fuzzy -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animaatio" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:67 +#: ../../docs/about/docs_changelog.rst:75 #, fuzzy -msgid ":ref:`AnimationTree `" +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:72 +#: ../../docs/about/docs_changelog.rst:80 #, fuzzy -msgid ":ref:`Containers `" +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 #, fuzzy msgid "Your First Shader Series:" msgstr "Ensimmäinen pelisi" -#: ../../docs/about/docs_changelog.rst:88 -#, fuzzy -msgid ":ref:`What are shaders? `" -msgstr ":ref:`AnimatedSprite `" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -#, fuzzy -msgid ":ref:`Shaders `" -msgstr ":ref:`AnimatedSprite `" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" -msgstr "" +#, fuzzy +msgid ":ref:`doc_what_are_shaders`" +msgstr ":ref:`AnimatedSprite `" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" -msgstr "" +#, fuzzy +msgid ":ref:`doc_your_first_canvasitem_shader`" +msgstr "Ensimmäinen pelisi" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" -msgstr "" +#, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" +msgstr "Ensimmäinen pelisi" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" +msgstr ":ref:`AnimatedSprite `" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" +msgstr ":ref:`AnimatedSprite `" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr ":ref:`AnimatedSprite `" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animaatio" -#: ../../docs/about/docs_changelog.rst:118 +#: ../../docs/about/docs_changelog.rst:126 #, fuzzy -msgid ":ref:`Using MultiMesh `" +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:119 +#: ../../docs/about/docs_changelog.rst:127 #, fuzzy -msgid ":ref:`Using servers `" +msgid ":ref:`doc_using_servers`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 +#: ../../docs/about/docs_changelog.rst:140 #, fuzzy -msgid ":ref:`Complying with Licenses `" +msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 +#: ../../docs/about/docs_changelog.rst:151 #, fuzzy -msgid "" -":ref:`Binding to external libraries `" +msgid ":ref:`doc_binding_to_external_libraries`" msgstr ":ref:`Ulkoiset editorit ovat mahdollisia `" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Sisällön luominen" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:156 #, fuzzy -msgid ":ref:`Making trees `" +msgid ":ref:`doc_making_trees`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Liitännäiset" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:161 #, fuzzy -msgid ":ref:`Spatial gizmo plugins `" +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Animaatioiden valinta" + +#: ../../docs/about/docs_changelog.rst:162 +#, fuzzy +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:155 +#: ../../docs/about/docs_changelog.rst:163 #, fuzzy -msgid ":ref:`Creating Android plugins `" +msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Animaatiolinjasto `" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -2220,7 +2232,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editori" @@ -2614,14 +2626,16 @@ msgstr "" #, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "Voit säätää myös yksittäisiä ilmentymiä. Aseta kimpoavuus takaisin arvoon " "``0.5`` ja valitse sen jälkeen yksi pallon ilmentymä ``Main`` skenessä. " "Aseta sen ``Bounce`` arvoon ``1`` ja paina \"Pelaa\"." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2637,14 +2651,14 @@ msgstr "" "muokattu arvo jää voimaan. Palautuspainikkeen painaminen palauttaa " "ominaisuuden tallennetun skenen arvoon." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Lopputulos" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 #, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " @@ -3574,8 +3588,8 @@ msgstr "Ryhmät" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Solmut voidaan lisätä ryhmiin, niin moniin kuin on tarpeen solmua kohden, " "mikä on käyttökelpoinen ominaisuus suurten skenejen järjestelemiseen. Tähän " @@ -3823,7 +3837,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "Vain GDScript luo globaaleja muuttujia kullekin nimetylle skriptille." #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5434,24 +5448,24 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "Viimeistely" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -5461,12 +5475,12 @@ msgstr "" "joitakin jäljellä olevia toimenpiteitä pelikokemuksen mehevöittämiseksi. " "Voit vapaasti laajentaa pelattavuutta omilla ideoillasi." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "Tausta" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5482,7 +5496,7 @@ msgstr "" "yksi ominaisuus: ``Color``. Valitse haluamasi väri ja suurenna ``ColorRect`` " "solmua niin, että se kattaa koko ruudun." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 #, fuzzy msgid "" "You could also add a background image, if you have one, by using a " @@ -5491,11 +5505,11 @@ msgstr "" "Voit lisätä myös taustakuvan, jos käytössäsi on sellainen, käyttämällä " "``Sprite`` solmua." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "Ääniefektit" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5507,7 +5521,7 @@ msgstr "" "Forest Loop.ogg\" taustamusiikille ja \"gameover.wav\" sitä varten, kun " "pelaaja häviää." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5519,7 +5533,7 @@ msgstr "" "``DeathSound``. Napsauta kummallekin ``Stream`` ominaisuutta, valitse \"Lataa" "\" ja valitse nimeä vastaava äänitiedosto." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5527,22 +5541,22 @@ msgstr "" "Soittaaksesi musiikkia, lisää ``$Music.play()`` ``new_game()`` funktioon ja " "``$Music.stop()`` ``game_over()`` funktioon." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "Lopuksi, lisää ``$DeathSound.play()`` ``game_over()`` funktioon." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5552,31 +5566,31 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "Projektin tiedostot" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 #, fuzzy msgid "You can find a completed version of this project at these locations:" msgstr "" "Löydät valmiin version tästä projektista täältä: https://github.com/" "kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 #, fuzzy msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" "Löydät valmiin version tästä projektista täältä: https://github.com/" "kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -5675,7 +5689,7 @@ msgstr "Tässä koko skripti pelaajalle, muutokset kommenteihin merkittynä:" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "Vientimallit" @@ -6190,9 +6204,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -8959,7 +8972,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -10047,66 +10060,73 @@ msgstr "" "pyrkii auttamaan sinua siirtämään nykyisen Unity-käyttökokemuksesi Godotin " "maailmaan." -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "Eroavaisuudet" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Lisenssi" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" "Omisteinen, suljettu, vapaa lisenssi, jolla tulorajoja ja käyttörajoituksia" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "MIT-lisenssi, vapaa ja täysin avoin lähdekoodi ilman rajoituksia" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "Käyttöjärjestelmät (editori)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "Windows, macOS, Linux (epävirallinen ja tukematon)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "Käyttöjärjestelmät (vienti)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**Työpöytä:** Windows, macOS, Linux" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**Mobiili:** Android, iOS, Windows Phone, Tizen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "**WWW:** WebAssembly tai asm.js" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "**Konsolit:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" @@ -10114,43 +10134,43 @@ msgstr "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "**TV:** Android TV, Samsung SMART TV, tvOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "**Työpöytä:** Windows, macOS, X11" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "**Mobiili:** Android, iOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "**WWW:** WebAssembly" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "**Konsoli:** Katso :ref:`doc_consoles`" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "**VR:** Oculus Rift, SteamVR" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "Skenejärjestelmä" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "Komponentti/Skene (GameObject > Component)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "Prefabit" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" @@ -10158,80 +10178,73 @@ msgstr "" ":ref:`Skenepuut ja solmut `, mahdollistaen sisäkkäiset " "skenet ja/tai skenejen perimisen toisista skeneistä" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "Kolmannen osapuolen työkalut" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "Visual Studio tai VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr ":ref:`Ulkoiset editorit ovat mahdollisia `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr ":ref:`Android SDK Android-vientiin `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "Valtava yhteisö" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "Suuri asset-kauppa" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "Skenejärjestelmä" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "Debuggaa laitteella" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "Editori" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 +#, fuzzy msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" "Godot Engine tarjoaa peliesi tekemiseen ominaisuuksiltaan monipuolisen " "editorin. Alla olevat kuvat esittävät molemmat editorit, yleiset " "toiminnallisuudet väritetyillä alueilla osoitettuna." -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" -"Huomaa, että Godotin editori sallii paneelien telakoimisen haluamallesi " -"puolelle skene-editoria." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 #, fuzzy msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" "Vaikka editorit vaikuttavat samanlaisilta, pinnan alla niillä on monia " "eroavaisuuksia. Molemmat antavat sinun organisoida projektin " @@ -10241,26 +10254,27 @@ msgstr "" "Godot on paljon ystävällisempi sellaisille versionhallintajärjestelmille, " "kuten Git, Subversion ja Mercurial." -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 +#, fuzzy msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" "Godotin Skene-paneeli on samankaltainen kuin Unityn Hierarchy-paneeli, mutta " "koska jokaisella solmulla on tietty tehtävä, Godotin käyttämä lähestymistapa " "on visuaalisesti kuvaavampi. Toisin sanoen, on helpompi ymmärtää yhdellä " "vilkaisulla mitä jokin tietty skene tekee." -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 +#, fuzzy msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" "Godotin tarkastelija on minimalistisempi ja suunniteltu näyttämään " "ainoastaan ominaisuuksia. Siitä johtuen, objektit voivat esitellä paljon " @@ -10270,33 +10284,34 @@ msgstr "" "tekstuurien, enumeraatioiden ja jopa resurssilinkkien muuttaminen " "reaaliajassa on mahdollista ilman koodia." -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 +#, fuzzy msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" "Lopuksi, ruudun ylälaidassa oleva työkalupalkki on samanlainen siinä " "mielessä, että se mahdollistaa projektin toiston ohjaamisen, mutta Godotissa " "projektit suoritetaan erillisessä ikkunassa; niitä ei suoriteta editorin " "sisällä (mutta puuta ja objekteja voi silti tutkailla debuggeri-ikkunassa)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -10304,65 +10319,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -10372,59 +10388,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -10434,142 +10452,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -10577,7 +10586,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -10585,30 +10594,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -10616,7 +10624,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -10624,28 +10632,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Spriten animaatio" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -10654,7 +10662,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -10663,11 +10671,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -10675,7 +10683,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -12770,11 +12778,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -12785,67 +12800,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -12855,43 +12932,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -12899,7 +12976,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -12907,11 +12984,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -13424,7 +13501,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -15528,7 +15605,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -16368,10 +16445,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -16387,274 +16463,271 @@ msgid "Formatting conventions" msgstr "3D-sisällön luominen" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 #, fuzzy msgid "Using spaces" msgstr "Skenejen instantiointi" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -19660,91 +19733,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -27011,18 +27090,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -27030,11 +27125,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -27044,11 +27139,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Syvyys" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -27057,34 +27152,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -27092,33 +27187,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -27126,17 +27221,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -27145,17 +27240,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -27275,7 +27370,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -27692,7 +27788,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -27767,13 +27863,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -27782,31 +27885,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "GIProben keskeisimmät haittapuolet ovat:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -27814,63 +27917,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "Valojen lisäys" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -27878,82 +27981,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -28550,7 +28653,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -28558,28 +28661,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -28589,7 +28692,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -28599,57 +28702,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -28658,7 +28761,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -28666,52 +28769,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -28721,28 +28824,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -28750,47 +28853,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -28799,65 +28902,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -28867,27 +28970,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -28895,78 +28998,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -30215,23 +30318,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -30239,90 +30342,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -30331,30 +30434,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -30362,120 +30465,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -30483,13 +30586,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -30497,44 +30600,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -30542,14 +30645,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -30558,37 +30661,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -30596,7 +30699,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -30605,7 +30708,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -30613,7 +30716,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -30621,12 +30724,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -30634,30 +30737,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -30665,30 +30768,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -30696,14 +30799,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -30711,86 +30814,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -30798,62 +30901,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -30862,7 +30965,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -30870,44 +30973,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -30917,32 +31020,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -30952,7 +31055,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -38252,7 +38355,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -38263,99 +38366,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -38363,11 +38466,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -38378,26 +38481,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -38406,7 +38509,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -39199,7 +39302,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -44837,10 +44940,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -53501,7 +53600,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -64352,6 +64451,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -64362,52 +64465,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -66267,9 +66370,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -66299,7 +66402,7 @@ msgstr "Kolmannen osapuolen työkalut" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -66328,7 +66431,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -66352,9 +66455,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -66759,7 +66862,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -67045,7 +67148,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -67206,17 +67309,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -67225,7 +67327,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -67298,7 +67400,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -67327,12 +67429,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -67352,57 +67453,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -67410,7 +67507,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -67418,57 +67515,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -67479,6 +67585,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -68384,7 +68494,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -68392,18 +68501,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -68411,27 +68520,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -68439,21 +68548,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -68464,12 +68573,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -68477,7 +68586,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -68486,28 +68595,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -68517,7 +68626,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -68527,19 +68636,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -68548,7 +68657,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -68556,14 +68665,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -68572,57 +68681,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -68633,7 +68742,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -68643,55 +68752,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Solmujen luonti" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -68700,65 +68809,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -68889,7 +68998,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" @@ -74879,6 +74988,13 @@ msgid "" "`_" msgstr "" +#~ msgid "" +#~ "Note that Godot editor allows you to dock each panel at the side of the " +#~ "scene editor you wish." +#~ msgstr "" +#~ "Huomaa, että Godotin editori sallii paneelien telakoimisen haluamallesi " +#~ "puolelle skene-editoria." + #~ msgid "name" #~ msgstr "name" diff --git a/weblate/fil.po b/weblate/fil.po index 78d19b6c11..8f3d1bdeb6 100644 --- a/weblate/fil.po +++ b/weblate/fil.po @@ -11,7 +11,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-04-08 10:35+0000\n" "Last-Translator: Marco Santos \n" "Language-Team: Filipino `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "" @@ -971,360 +975,357 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +msgid ":ref:`doc_android_plugin`" msgstr "" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -1787,7 +1788,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2082,11 +2083,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2096,14 +2099,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2783,8 +2786,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2962,7 +2965,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4162,36 +4165,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4201,17 +4204,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4219,7 +4222,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4227,28 +4230,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4258,25 +4261,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4353,7 +4356,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4776,9 +4779,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7540,7 +7542,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8624,223 +8626,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8848,65 +8850,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8916,59 +8919,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -8978,142 +8983,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9121,7 +9117,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9129,30 +9125,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9160,7 +9155,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9168,27 +9163,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9197,7 +9192,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9206,11 +9201,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9218,7 +9213,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11312,11 +11307,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11327,67 +11329,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11397,43 +11461,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11441,7 +11505,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11449,11 +11513,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -11965,7 +12029,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14051,7 +14115,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14880,10 +14944,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14898,273 +14961,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18131,91 +18191,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25434,18 +25500,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25453,11 +25535,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25467,11 +25549,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25480,34 +25562,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25515,33 +25597,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25549,17 +25631,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25568,17 +25650,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25698,7 +25780,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26115,7 +26198,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26190,13 +26273,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26205,30 +26295,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26236,63 +26326,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26300,82 +26390,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -26972,7 +27062,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -26980,28 +27070,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27011,7 +27101,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27021,57 +27111,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27080,7 +27170,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27088,52 +27178,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27143,28 +27233,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27172,47 +27262,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27221,65 +27311,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27289,27 +27379,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27317,78 +27407,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28629,23 +28719,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28653,90 +28743,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28745,30 +28835,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28776,120 +28866,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28897,13 +28987,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28911,44 +29001,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -28956,14 +29046,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -28972,37 +29062,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29010,7 +29100,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29019,7 +29109,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29027,7 +29117,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29035,12 +29125,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29048,30 +29138,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29079,30 +29169,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29110,14 +29200,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29125,86 +29215,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29212,62 +29302,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29276,7 +29366,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29284,44 +29374,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29331,32 +29421,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29366,7 +29456,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36658,7 +36748,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36669,99 +36759,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36769,11 +36859,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36784,26 +36874,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36812,7 +36902,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37603,7 +37693,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43209,10 +43299,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51856,7 +51942,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62673,6 +62759,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62683,52 +62773,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64552,9 +64642,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64583,7 +64673,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64611,7 +64701,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64635,9 +64725,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65042,7 +65132,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65328,7 +65418,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65489,17 +65579,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65508,7 +65597,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65581,7 +65670,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65610,12 +65699,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65635,57 +65723,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65693,7 +65777,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65701,57 +65785,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65762,6 +65855,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66665,7 +66762,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66673,18 +66769,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66692,27 +66788,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66720,21 +66816,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66745,12 +66841,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66758,7 +66854,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66767,28 +66863,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66798,7 +66894,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66808,19 +66904,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66829,7 +66925,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66837,14 +66933,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66853,57 +66949,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66914,7 +67010,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -66924,54 +67020,54 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 msgid "Targeting Android" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -66980,65 +67076,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67169,7 +67265,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/fr.po b/weblate/fr.po index 84526afd98..69cb8dadaa 100644 --- a/weblate/fr.po +++ b/weblate/fr.po @@ -97,7 +97,7 @@ msgid "" msgstr "" "Project-Id-Version: French (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 06:19+0000\n" "Last-Translator: Proton Fox \n" "Language-Team: French `_ !" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "La documentation principale du site est organisée en plusieurs sections :" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Général" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Prise en main" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutoriels" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Développement" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Communauté" @@ -1390,383 +1394,434 @@ msgstr "" "substantielle mais ne sont pas listés dans ce document." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Nouveaux tutoriels depuis la version 3.0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "Internationalisation" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Localisation" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "Nouveaux tutoriels depuis la version 3.0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Pas à pas" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`Signaux `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`Exporter `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Gestion de projet" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +#, fuzzy +msgid ":ref:`doc_android_custom_build`" msgstr "" ":ref:`Compilation personnalisée pour Android " "`" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "Les Meilleures Pratiques :" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Introduction `" -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Que sont les Classes Godot `" -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organisation des Scènes `" -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Scènes VS scripts `" -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" -":ref:`Chargements automatiques VS nœuds internes " -"`" +#: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "Chargements automatiques par rapport aux nœuds internes" -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" +#: ../../docs/about/docs_changelog.rst:41 +#, fuzzy +msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Node alternatives `" -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Interfaces de Godot `" -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Notifications de Godot `" -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Préférences des données `" -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Préférences des logiques `" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "Les scripts" -#: ../../docs/about/docs_changelog.rst:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +#, fuzzy +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`GDscript Dactylographié `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +#, fuzzy +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Lumières 2D et ombres `" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Mailles 2D `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +#, fuzzy +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" ":ref: `Animer des milliers de poissons avec MultiMesh " "`" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +#, fuzzy +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Contrôler des milliers de poissons avec des Particules " "`" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Physique" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Système de ragdoll `" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animation" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Squelettes 2D `" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Arbre d'Animations `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "Interface graphique" -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Conteneurs `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Vue d'écran" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +#, fuzzy +msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Utiliser une Vue comme une texture `" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" msgstr "ref:`Post-traitement personnalisé `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Ombres" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +#: ../../docs/about/docs_changelog.rst:91 +#, fuzzy +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introduction aux shaders: Eau 2D et 3D (7 tutoriels vidéo) " "`" -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +#: ../../docs/about/docs_changelog.rst:92 +#, fuzzy +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migration vers le langage de Shader de Godot (Godot’s shading " "language) `" -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr ":ref:`Post-traitement avancé `" +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "Post-traitement avancé" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "Votre première série de shaders :" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" +#: ../../docs/about/docs_changelog.rst:96 +#, fuzzy +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Que sont les shaders ? `" -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" +#: ../../docs/about/docs_changelog.rst:97 +#, fuzzy +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" ":ref:`Votre premier Shader CanvasItem `" -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" +#: ../../docs/about/docs_changelog.rst:98 +#, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Votre premier shader Spatial `" -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" +#: ../../docs/about/docs_changelog.rst:99 +#, fuzzy +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Votre premier shader Spatial : Partie 2 " "`" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:106 msgid "Shading Reference:" msgstr "Référence de shading :" -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" msgstr ":ref:`langage de shading `" -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Shaders spatiaux `" -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`CanvasItem shaders `" -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Shaders de particule `" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "Réalité virtuelle" -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:111 +#, fuzzy +msgid ":ref:`doc_vr_starter_tutorial`" msgstr "ref:`Tutoriel de démarrage VR `" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Spécifique à la plateforme" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Personnaliser l'exportation Web de la page HTML " "`" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Le Multi-threading" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +#, fuzzy +msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread safe APIs `" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optimisation" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +#, fuzzy +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Utiliser des MultiMesh `" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +#, fuzzy +msgid ":ref:`doc_using_servers`" msgstr ":ref: 'Utiliser les serveurs < doc_using_servers > '" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Divers" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +#, fuzzy +msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Réparer jitter et stutter `" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +#, fuzzy +msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Lancer le code dans l'éditeur `" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +#, fuzzy +msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Changer les scènes manuellement `" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +#, fuzzy +msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`Différences entre GLES2 et GLES3 `" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Légal" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +#, fuzzy +msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Se conformer aux licences `" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "Compilation" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +#, fuzzy +msgid ":ref:`doc_optimizing_for_size`" msgstr "" ":ref:`Optimisation d'un build pour la taille `" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +#, fuzzy +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Compiler avec un script de clé de cryptage " "`" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Développement du moteur" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" -msgstr "" -":ref:`Lier aux librairies externes `" +#: ../../docs/about/docs_changelog.rst:151 +#, fuzzy +msgid ":ref:`doc_binding_to_external_libraries`" +msgstr "Liaison à des bibliothèques externes" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Création de contenu" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" msgstr "ref:`Faire des arbres `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Extensions" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Faire des plugins pour l'écran principal " "`" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +#, fuzzy +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "ref:`Spatial gizmo plugins `" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Créer des plugins Android `" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -2347,7 +2402,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Éditeur" @@ -2756,17 +2811,20 @@ msgstr "" "affecteront toutes les instances." #: ../../docs/getting_started/step_by_step/instancing.rst:107 +#, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "Vous pouvez également ajuster des instances individuelles. Réglez de nouveau " "la valeur de rebond sur ``0``, puis dans la scène ``Main``, sélectionnez " "l'une des balles instanciées. Réglez son ``Bounce`` sur ``1`` et appuyez sur " "\"Jouer\"." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2783,14 +2841,14 @@ msgstr "" "retour en arrière pour rétablir la propriété à la valeur de la scène " "sauvegardée." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Conclusion" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3736,11 +3794,12 @@ msgid "Groups" msgstr "Groupes" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:90 +#, fuzzy msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Les groupes dans Godot fonctionnent comme des balises que vous auriez pu " "trouver dans d'autres logiciels. Un nœud peut être ajouté à autant de " @@ -3993,7 +4052,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "Seul GDScript crée des variables globales pour chaque script nommé." #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5654,7 +5713,7 @@ msgstr "" "Commencez par ajouter une nouvelle fonction à ``Mob.gd```. ``queue_free()`` " "supprimera le nœud courant à la fin de l'image(frame) courante." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 msgid "" "Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` " "function, at the end." @@ -5662,7 +5721,7 @@ msgstr "" "Enfin, dans le script \"Main.gd\", ajoutez une nouvelle ligne à la fin de la " "fonction \"_on_MobTimer_timeout()\"." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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 " @@ -5672,11 +5731,11 @@ msgstr "" "de répondre à tout signal ``start_game`` émis par le nœud ``HUD`` en " "exécutant sa fonction ``_on_start_game()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "Pour terminer" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -5687,12 +5746,12 @@ msgstr "" "pour améliorer l'expérience de jeu. N'hésitez pas à développer le gameplay " "avec vos propres idées." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "Arrière-plan" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5708,7 +5767,7 @@ msgstr "" "propriété : ``Color``. Choisissez une couleur que vous aimez et faites " "glisser la taille du ``ColorRect`` pour qu'il couvre l'écran." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 msgid "" "You could also add a background image, if you have one, by using a " "``Sprite`` node." @@ -5716,11 +5775,11 @@ msgstr "" "Vous pouvez aussi ajouter une image de fond, si vous en avez une, en " "utilisant un nœud ``Sprite``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "Effets sonores" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5732,7 +5791,7 @@ msgstr "" "vous avez deux fichiers son : \"House In a Forest Loop.ogg\" pour la musique " "de fond, et \"gameover.wav\" pour quand le joueur perd." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5744,7 +5803,7 @@ msgstr "" "``DeathSound``. Sur chacun d'eux, cliquez sur la propriété ``Stream``, " "sélectionnez \"Charger\", et choisissez le fichier audio correspondant." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5752,16 +5811,16 @@ msgstr "" "Pour jouer de la musique, ajouter ``$Music.play()`` dans la fonction " "``new_game()`` et ``$Music.stop()`` dans la fonction ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" "Enfin, ajoutez ``$DeathSound.play()`` dans la fonction ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "Raccourci clavier" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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 " @@ -5772,7 +5831,7 @@ msgstr "" "clavier. Une façon d'y parvenir est d'utiliser la propriété \"Raccourci\" du " "nœud \"Bouton\"." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5788,7 +5847,7 @@ msgstr "" "\". Enfin, dans _Action_ property, tapez le nom \"ui_select\". C'est " "l'événement d'entrée par défaut associé à la barre d'espace." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." @@ -5796,19 +5855,19 @@ msgstr "" "Maintenant, lorsque le bouton de démarrage apparaît, vous pouvez cliquer " "dessus ou appuyer sur la barre d'espace pour démarrer le jeu." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "Fichiers du projet" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "Vous pouvez trouver une version complète de ce projet ici :" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "https://github.com/kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -5919,7 +5978,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "Exporter des modèles" @@ -6532,11 +6591,11 @@ msgstr "" "élaborées à partir de la base des collaborateurs." #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 +#, fuzzy msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" "N'importe qui peut ajouter des outils propriétaires pour le besoin de leurs " "projets - ils ne sont simplement pas fournis avec le moteur. Il peut s'agir " @@ -10584,7 +10643,7 @@ msgstr ":download:`robisplash_assets.zip `." #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -12117,67 +12176,74 @@ msgstr "" "utilisateur de Unity, et vise à vous aider à transiter de votre expérience " "de Unity vers le monde de Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "Différences" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licence" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" "Propriétaire, fermé, licence gratuite avec une limite de revenus et des " "restrictions d’usage" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "Licence MIT, libre et open source sans aucune restriction" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "OS (éditeur)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "Windows, macOS, Linux (non-official and non-supported)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "OS (export)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**Bureau :** Windows, macOS, Linux" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**Mobile :** Android, iOS, Windows Phone, Tizen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "**Web :** WebAssembly or asm.js" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "**Consoles :** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" @@ -12185,43 +12251,43 @@ msgstr "" "**VR :** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "**TV :** Android TV, Samsung SMART TV, tvOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "**Desktop :** Windows, macOS, X11" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "**Mobile :** Android, iOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "**Web :** WebAssembly" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "**Console :** Voir :ref:`doc_consoles`" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "**VR :** Oculus Rift, SteamVR" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "Système de scène" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "Composant/Scène (GameObject > Composant)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "Prefabs" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" @@ -12229,80 +12295,75 @@ msgstr "" ":ref:`Un arbre de scènes et des nœuds `, permettant " "aux scènes d’être imbriquées ou d’hériter d’autres scènes" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "Outils de tierce partie" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "Visual Studio ou VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr ":ref:`Les éditeurs externes sont possibles `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" ":ref:`La SDK Android pour l’export Android `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" -msgstr "Fonctionnalités de tueurs" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +#, fuzzy +msgid "Notable advantages" +msgstr "**Avantages :**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "Immense communauté" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "Grande boutique en ligne de ressources" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "Système de Scène" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr ":ref:`Pipeline d’animation `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr ":ref:`Facilité d’écriture de Shaders `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "Débogage sur appareil" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "L’éditeur" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 +#, fuzzy msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" "Godot Engine propose un éditeur richement fourni vous permettant de " "construire vos jeux. Les images ci-dessous affichent les deux éditeurs avec " "des blocs de couleur pour indiquer les fonctionnalités communes." -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" -"Notez que l'éditeur Godot vous permet d'accrocher chaque panneau sur le côté " -"souhaité de l'éditeur de scène." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 +#, fuzzy msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" "Bien que les deux éditeurs puissent sembler similaires, il existe de " "nombreuses différences sous la surface. Les deux vous permettent d'organiser " @@ -12311,26 +12372,27 @@ msgstr "" "minimaliste, et pas de métadonnées. Tout cela contribue à rendre Godot plus " "convivial avec les systèmes VCS tels que Git, Subversion ou Mercurial." -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 +#, fuzzy msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" "Le panneau Scène de Godot est similaire au panneau Hiérarchie d'Unity, mais " "comme chaque nœud a une fonction spécifique, l'approche utilisée par Godot " "est plus parlante visuellement. En d'autres termes, il est plus facile de " "comprendre ce que fait une scène spécifique d'un coup d'œil." -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 +#, fuzzy msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" "L'inspecteur dans Godot est plus minimaliste et conçu pour afficher " "uniquement les propriétés. Grâce à cela, les objets peuvent exporter une " @@ -12340,12 +12402,13 @@ msgstr "" "couleurs, les textures, les énumérations ou même les liens vers les " "ressources en temps réel sans nécessiter de code." -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 +#, fuzzy msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" "Enfin, la barre d’outils en haut de l’écran est similaire dans le sens où " "elle permet de contrôler la lecture du projet, mais dans Godot, les projets " @@ -12353,19 +12416,20 @@ msgstr "" "l’éditeur (toutefois l'arborescence et les objets sont toujours visibles " "dans la fenêtre du débogueur)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 +#, fuzzy msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" "Cette approche a l’inconvénient que le jeu en cours ne peut pas être vu sous " "différents angles (bien que cela puisse être supporté à l’avenir et que " "l’affichage des gadgets de collision dans le jeu en cours soit déjà " "possible), mais en échange a plusieurs avantages :" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." @@ -12373,7 +12437,7 @@ msgstr "" "Lancer le projet et le fermer est rapide (Unity doit sauvegarder, exécuter " "le projet, fermer le projet, puis recharger l'état précédent)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -12386,50 +12450,55 @@ msgstr "" "Cela permet des flux de travail fantastiques, comme la création de niveaux " "pendant que vous les jouez." -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" "L'éditeur est plus stable car le jeu s'exécute dans un processus distinct." -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 +#, fuzzy msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" "Enfin, la barre d’outils supérieure comprend un menu pour le débogage à " "distance. Ces options facilitent le déploiement sur un périphérique " "(téléphone connecté, tablette ou navigateur via HTML5) ainsi que le " "débogage / modification en direct après l'exportation du jeu." -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "Le système de scène" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 +#, fuzzy msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" "C'est la différence la plus importante entre Unity et Godot et, en fait, la " "caractéristique préférée de la plupart des utilisateurs de Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 +#, fuzzy msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" "Le système de scène d'Unity consiste à intégrer tous les actifs requis dans " "une scène et à les relier ensemble en leur attribuant des composants et des " "scripts." -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 +#, fuzzy msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" "Le système de scène de Godot est différent : il s'agit en fait d'un arbre " "constitué de nœuds. Chaque nœud a un but : Sprite, Mesh, Light, etc. " @@ -12438,7 +12507,7 @@ msgstr "" "scène dans à la scène principale. Cela signifie que vous pouvez composer une " "scène entière avec différentes scènes stockées dans des fichiers différents." -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" @@ -12446,23 +12515,23 @@ msgstr "" "Par exemple, pensez à un niveau de plateforme. Vous le composeriez avec " "plusieurs éléments :" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "Les briques" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "Les pièces" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "Le joueur" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "Les ennemis" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -12479,56 +12548,65 @@ msgstr "" "éléments de la scène pour qu'ils puissent entrer en collision. Ce principe " "est différent dans Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 +#, fuzzy msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." msgstr "" "Dans Godot, vous diviseriez toute votre scène en 3 scènes plus petites et " "distinctes, que vous placeriez ensuite dans la scène principale." -#: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#, fuzzy +msgid "**A scene for the Player alone.**" msgstr "**Tout d'abord, une scène pour le joueur seul.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#: ../../docs/getting_started/editor/unity_to_godot.rst:115 +#, fuzzy msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" "Considérez le joueur comme un élément réutilisable dans d’autres niveaux. Il " "est composé d'un nœud en particulier : un nœud AnimatedSprite, qui contient " "les textures du sprite pour former diverses animations (par exemple, " "animation de marche)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#, fuzzy +msgid "**A scene for the Enemy.**" msgstr "**Deuxièmement, une scène pour l'ennemi.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 +#, fuzzy msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" "Là encore, un ennemi est un élément réutilisable à d'autres niveaux. C'est " "presque le même que le nœud du joueur - les seules différences sont le " "script (qui gère principalement l'IA) et les textures de sprites utilisées " "par AnimatedSprite." -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +#, fuzzy +msgid "**A Level scene.**" msgstr "**Enfin, la scène niveau.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 +#, fuzzy msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" "Il est composé de briques (pour les plates-formes), de pièces (à attraper " "par le joueur) et d'un certain nombre d'instances de la scène ennemi " @@ -12539,10 +12617,11 @@ msgstr "" "différentes propriétés pour chaque nœud ennemi (pour changer sa couleur, par " "exemple)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 +#, fuzzy msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " @@ -12556,7 +12635,7 @@ msgstr "" "à la 3D) ou \"Control\" (type racine de tous les nœuds liés à l'interface " "graphique)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -12573,35 +12652,37 @@ msgstr "" "différents types de nœuds de collision, en fonction de l'utilisation (voir: " "ref: `Introduction à la physique `)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#, fuzzy msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" "Question : Quels sont les avantages de ce système? Ce système ne pourrait-il " "pas augmenter la profondeur de l'arborescence de la scène ? De plus, Unity " "permet d'organiser les GameObjects en les mettant dans des GameObjects vides." -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 +#, fuzzy msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" "Premièrement, ce système est plus proche du paradigme bien connu orienté " "objet : Godot fournit un certain nombre de nœuds qui ne sont pas clairement " "des \"objets de jeu\", mais ils fournissent à leurs enfants leurs propres " "capacités: c'est l'héritage." -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 +#, fuzzy msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" "Deuxièmement, il permet d'extraire une sous-arborescence de scène pour en " "faire une scène à part entière, qui répond aux deuxième et troisième " @@ -12612,47 +12693,36 @@ msgstr "" "plusieurs nœuds dans un GameObject vide dans Unity n’offre pas la même " "possibilité, hormis une organisation visuelle." -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" -"Ce sont les concepts les plus importants dont vous devez vous souvenir : " -"\"nœud\", \"nœud parent\" et \"nœud enfant\"." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "Organisation du projet" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -"Nous avons précédemment observé qu'il n'y a pas de solution parfaite pour " -"définir une architecture de projet. Toute solution fonctionnera pour Unity " -"et Godot, alors ce point a moins d'importance." -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 +#, fuzzy msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" "Cependant, nous observons souvent une architecture commune pour les projets " "Unity, qui consiste à avoir un dossier Assets dans le répertoire racine qui " "contient différents dossiers, un par type d'actif : Audio, Graphiques, " "Modèles, Matériaux, Scripts, Scènes, etc." -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 +#, fuzzy msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" "Comme décrit précédemment, le système de scène de Godot permet de diviser " "des scènes en scènes plus petites. Comme chaque scène et sous-scène est en " @@ -12660,31 +12730,33 @@ msgstr "" "votre projet un peu différemment. Ce wiki fournit une page pour ceci : :ref:" "`doc_project_organization`." -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "Où sont mes prefabs (préfabriqués) ?" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 +#, fuzzy msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" "Le concept de préfabriqué (prefab) fourni par Unity est un élément «modèle» " "de la scène. Il est réutilisable et chaque instance du préfabriqué existant " "dans la scène a une existence propre, mais toutes ont les mêmes propriétés " "que celles définies par le préfabriqué." -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 +#, fuzzy msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" "Godot ne fournit pas de préfabriqué en tant que tel, mais cette " "fonctionnalité est là encore remplie grâce à son système de scène : Comme " @@ -12696,16 +12768,17 @@ msgstr "" "instances. Cependant, toute modification apportée à l'instance n'aura aucun " "impact sur la scène 'modèle'." -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 +#, fuzzy msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" "Pour être précis, vous pouvez modifier les paramètres de l'instance dans le " "panneau Inspecteur. Toutefois, les nœuds qui composent cette instance sont " @@ -12718,49 +12791,51 @@ msgstr "" "enfants à toutes les instances de votre scène 'template', vous devez les " "ajouter dans la scène 'template'." -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "Correspondance de glossaire" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "GameObject -> Node" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "Ajouter un composant -> Hériter" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" -msgstr "Préfab -> Branche externalisée" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "Scripting: GDScript, C# et Visual Script" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "Conception" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#, fuzzy msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" "Comme vous le savez peut-être déjà, Unity prend en charge le C#. Le C# " "bénéficie de son intégration à Visual Studio et d'autres fonctionnalités, " "telle que la saisie statique." -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 +#, fuzzy msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" "Godot fournit son propre langage de script, :ref:`GDScript ` " "ainsi que le support pour :ref:`Visual Script `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -12853,15 +12928,15 @@ msgstr "" "propres signaux et les envoyer quand vous le souhaitez. Cette fonctionnalité " "est documentée :ref:`ici `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "Sérialisation de scripts" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "Unity peut gérer la sérialisation de scripts de deux manières :" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." @@ -12870,7 +12945,7 @@ msgstr "" "sérialisés si le type est sérialisable (``Dictionary`` n'est pas " "sérialisable)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." @@ -12878,7 +12953,7 @@ msgstr "" "Explicite: Les champs non-publics peuvent être sérialisés en utilisant " "l'attribut ``[SerializeField]``." -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -12893,7 +12968,7 @@ msgstr "" "`class_Dictionary`) en utilisant le mot-clé ``export``. Ce fonctionnement " "est expliqué :ref:`ici `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -12909,11 +12984,11 @@ msgstr "" "d'informations sur les ressources peuvent être trouvées :ref:`ici " "`." -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "Utiliser Godot en C ++" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -12925,7 +13000,7 @@ msgstr "" "Par exemple, vous pouvez considérer l'éditeur de Godot Engine comme un \"jeu" "\" écrit en C ++ à l'aide de l'API Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -15517,11 +15592,18 @@ msgstr "" "n'exécutent pas le code du jeu ou spécifiquement évitent de le faire). Pour " "cela, le mot-clé ``outil`` existe et doit être placé en haut du fichier :" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "Gestion de la mémoire" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -15540,7 +15622,7 @@ msgstr "" "peuvent pas être libérés, une fonction ``weakref`` est fournie pour créer " "des références faibles." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 msgid "" "Alternatively, when not using references, the " "``is_instance_valid(instance)`` can be used to check if an object has been " @@ -15550,44 +15632,103 @@ msgstr "" "``is_instance_valid (instance) `` peut être utilisé pour vérifier si un " "objet a été libéré." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 +#, fuzzy msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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 "" "Les signaux sont un moyen d'envoyer des messages de notification depuis un " "objet pour lequel les autres objets peuvent écouter de façon générique. " "Créez des signaux personnalisés pour une classe en utilisant le mot-clé " "``signal``." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1490 +#, fuzzy +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 "" "Ces signaux peuvent être connectés à des méthodes de la même manière que " "vous pouvez connecter les signaux de base des nœuds tels que :ref: " "`class_Button` or :ref: `class_RigidBody`." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1493 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" -"Voici un exemple qui créé un signal personnalisé dans un script et le " -"connecte à une méthode dans un autre script, en utilisant la méthode :ref:" -"`Object.connect() ` :" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1514 +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:1556 +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:1559 +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:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +#, fuzzy +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 "" "GDScript peut lier des arguments à des connexions entre un signal et une " "méthode. Lorsque le signal est émis, en appelant la méthode connectée, " @@ -15595,38 +15736,33 @@ msgstr "" "spécifiques a la connexion qu'au signal ou a la méthode, signifiant que " "chaque connexion a un lien unique." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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 "" -"Voici un exemple qui créé une connexion entre le signal ``pressed`` d'un " -"bouton et une méthode, en attachant l'instance du bouton à la connexion. Le " -"gestionnaire utilise l'argument attaché pour afficher quelle est l'instance " -"de bouton qui a été appuyée." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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 "" -"Les signaux sont générés par la méthode :ref:`Object.emit_signal() " -"`, qui diffuse le signal et les arguments." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" msgstr "" -"Extension d'un exemple précédent pour qu'il utilise toutes les " -"fonctionnalités des signaux de GDScript :" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "Coroutines avec yield" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -15643,23 +15779,23 @@ msgstr "" "retourne. Une fois repris, l'objet d'état devient invalide. Voici un " "exemple :" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "Affichera :" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" "Il est également possible de passer des valeurs entre yield() et resume(), " "par exemple :" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "Coroutines et signaux" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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 " @@ -15669,7 +15805,7 @@ msgstr "" "des signaux. ``yield`` peut accepter deux paramètres, un objet et un signal. " "Lorsque le signal est reçu, l'exécution reprend. Voici quelques exemples :" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 msgid "" "Coroutines themselves use the ``completed`` signal when they transition into " "an invalid state, for example:" @@ -15677,18 +15813,18 @@ msgstr "" "Les coroutines elles-mêmes utilisent le signal ``completed`` lorsqu'elles " "passent à un état invalide, par exemple :" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" "``my_func`` ne poursuivra l'exécution que lorsque les deux boutons auront " "été pressés." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "Mot-clé onready" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -15701,7 +15837,7 @@ msgstr "" "actives, les sous-nœuds ne peuvent être obtenus que lorsqu'un appel à Node." "_ready() est fait." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -15714,11 +15850,11 @@ msgstr "" "que _ready soit appelé. Il peut remplacer le code ci-dessus par une seule " "ligne :" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "Mot-clé d'assertion" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -16380,7 +16516,7 @@ msgid "**NEVER**:" msgstr "**JAMAIS** :" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "Conventions de nommage" @@ -19184,7 +19320,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "Exemple" @@ -20217,11 +20353,11 @@ msgid "Language specification" msgstr "Spécification du langage" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 +#, fuzzy msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" "Actuellement, Godot utilise C# version 6.0 dans son moteur et son code " "source d'exemple. Ainsi, avant de passer à une nouvelle version, il faut " @@ -20244,36 +20380,43 @@ msgid "Formatting conventions" msgstr "Conventions de formatage" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +#, fuzzy +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" "Si vous créez un nouveau fichier, assurez-vous qu'il utilise le caractères " "de saut de ligne (*LF*) pour les retours à la ligne, et non *CRLF* ou *CR*." #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 +#, fuzzy msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" "Utilisez l'encodage UTF-8 sans indicateur d'ordre d'octet (BOM )." #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 +#, fuzzy msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" "Utilisez 4 espaces au lieu de tabulations pour l'indentation (ce que l'on " "appelle les 'soft tabs')." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "Retours de ligne et lignes vierges" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 +#, fuzzy msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" @@ -20284,45 +20427,46 @@ msgstr "" "à une instruction de contrôle sur la ligne suivante, indentée au même " "niveau :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" "Cependant, vous pouvez choisir d'omettre les sauts de ligne entre accolades :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "Pour les accesseurs de propriétés simples." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" "Pour les initialisateurs d'objets simples, de tableaux ou de collections." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" "Pour la propriété automatique abstraite, l'indexeur ou les déclarations " "d'événements." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "Insérez une ligne vierge :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#, fuzzy +msgid "After a list of ``using`` statements." msgstr "Après *utilisation* de la liste des instructions." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 msgid "Between method, properties, and inner type declarations." msgstr "" "Entre les déclarations de méthodes, de propriétés, et de types internes." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 #, fuzzy msgid "At the end of each file." msgstr "Et puis le fichier cpp." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " @@ -20332,103 +20476,100 @@ msgstr "" "fonction de leur pertinence. Dans ce cas, envisagez d'insérer une ligne " "blanche entre les groupes pour faciliter la lecture." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "Évitez d'insérer une ligne blanche :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "Après une accolade ouvrante ``{``." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "Avant une accolade fermante ``}``." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#, fuzzy +msgid "After a comment block or a single-line comment." msgstr "Après un bloc de commentaires, ou un commentaire d'une seule ligne." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "Adjacente à une autre ligne vide." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "Utilisation des espaces" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "Insérez un espace :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "Autour d'un opérateur binaire et tertiaire." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#, fuzzy msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" "Entre une parenthèse ouvrante et les mots-clés *if*, *for*, *foreach*, " "*catch*, *while*, *lock* ou *using*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "Avant et au sein d’un bloc d’accesseur tenant sur une seule ligne." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "Entre accesseurs dans un bloc d’accesseurs sur une seule ligne." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "Après une virgule." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#, fuzzy +msgid "After a semicolon in a ``for`` statement." msgstr "Après un point-virgule dans une instruction *for*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#, fuzzy +msgid "After a colon in a single line ``case`` statement." msgstr "Après un deux-points dans une instruction *case* d'une ligne." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "Autour d'un deux-points dans une déclaration de type." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "Autour d'une flèche lambda." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 +#, fuzzy msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" "Après le symbole de commentaire d'une seule ligne ('//'), et avant si celui-" "ci est utilisé à la fin d'une ligne." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "N'utilisez pas d'espace :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "Après les parenthèses de conversion de type." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "Dans les accolades d'initialisation monoligne." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" @@ -20436,51 +20577,57 @@ msgstr "" "L'exemple suivant montre une utilisation correcte des espaces, selon " "certaines des conventions mentionnées ci-dessus :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 +#, fuzzy msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" "Utilisez le *PascalCase* pour tous les espaces de noms, les noms de type et " "les identificateurs de niveau membre (c.-à-d. méthodes, propriétés, " "constantes, événements), sauf pour les champs privés :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 +#, fuzzy msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" msgstr "" "Utilisez le *camelCase* pour tous les autres identificateurs (i.e. variables " "locales, arguments de méthode), et utilisez le trait de soulignement ('_') " "comme préfixe pour les champs privés (mais pas pour les méthodes ou " "propriétés, comme expliqué ci-dessus) :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +#, fuzzy msgid "" "There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" "Il y a une exception avec les acronymes qui consistent en deux lettres comme " "*'UI'* qui devrait être écrit en lettres majuscules lorsqu'ils sont utilisés " "là où la casse Pascal serait attendue, et en lettres minuscules sinon." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#, fuzzy msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" "Notez que *'id'* n'est **pas** un acronyme, il doit donc être traité comme " "un identificateur normal :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 +#, fuzzy msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" "Il est généralement déconseillé d'utiliser un nom de type comme préfixe d'un " "identificateur comme *'string strText'* ou *'float fPower'*, par exemple. " @@ -20488,7 +20635,7 @@ msgstr "" "**devraient** être nommées en utilisant un préfixe *'I'* majuscule , comme " "*'IInventoryHolder'* ou *'IDamageable'*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." @@ -20496,25 +20643,28 @@ msgstr "" "Enfin, pensez à choisir des noms descriptifs et n'essayez pas de les " "raccourcir trop si cela affecte la lisibilité." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#, fuzzy msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" "Par exemple, si vous voulez écrire un code pour trouver un ennemi proche et " "le frapper avec une arme, préférez" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" msgstr "Plutôt que," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "Variables locales implicitement typées" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 +#, fuzzy msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" @@ -20522,45 +20672,50 @@ msgstr "" "variable locale, mais faites-le **seulement lorsque le type est évident** du " "côté droit de l'assignation :" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "Autres considérations" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "Utilisez des modificateurs d'accès explicites." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "Utilisez des propriétés au lieu de champs non privés." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 +#, fuzzy msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" "Utilisez les modificateurs dans cet ordre : *'public/protected/private/" "internal virtual/override/abstract/new static readonly'*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#, fuzzy msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" "Évitez d'utiliser des noms complets ou le préfixe *'this.'* pour les membres " "lorsque ce n'est pas nécessaire." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#, fuzzy +msgid "Remove unused ``using`` statements and unnecessary parentheses." msgstr "" "Enlevez les instructions *'using'* non utilisées et les parenthèses non " "nécessaires." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#, fuzzy +msgid "Consider omitting the default initial value for a type." msgstr "Envisagez d'omettre la valeur initiale par défaut pour un type." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." @@ -20568,7 +20723,7 @@ msgstr "" "Envisagez d'utiliser des opérateurs conditionnels null ou des " "initialisateurs de type pour rendre le code plus compact." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -24384,12 +24539,18 @@ msgstr "" "les étapes suivantes, replacez-le avec le nom que vous utilisez." #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" "Quand l'exportation s'achève, le dossier de sortie devrait ressembler à " "ceci :" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." @@ -24397,11 +24558,11 @@ msgstr "" "Ouvrir **exported_xcode_project_name.xcodeproj** permet de compiler et de " "déployer comme n'importe quelle autre application iOS." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "Considérations actives lors du développement" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." @@ -24410,7 +24571,7 @@ msgstr "" "version officielle, mais vous allez devoir tout réexporter chaque fois que " "vous ferez un changement dans Godot." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." @@ -24418,11 +24579,11 @@ msgstr "" "Lors du développement, vous pouvez accélérer ce processus en liant vos " "fichiers de projet directement dans votre application." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "Dans l'exemple suivant :" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." @@ -24430,25 +24591,25 @@ msgstr "" "**exported_xcode_project_name** est le nom de l'application IOS exportée " "(comme au-dessus)." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "**godot_project_to_expor** est le nom du projet Godot." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "Étapes pour lier un dossier de projet Godot à Xcode" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "En partant d'un projet iOS exporté (suivez les étapes au-dessus)." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" "Dans le Finder, glissez-déposez le dossier de projet Godot dans le " "navigateur de fichier de Xcode." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " @@ -24458,17 +24619,17 @@ msgstr "" "est sélectionné. Cela veut dire que vous pourrez continuer d'éditer votre " "projet Godot à sa place actuelle." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" "Repérez le dossier **godot_project_to_export** dans le navigateur de " "fichiers Xcode." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "Supprimez **exported_xcode_project_name.pck** du projet Xcode." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " @@ -24478,7 +24639,7 @@ msgstr "" "propriété chaine nommée **godot_path** (c'est le vrai nom de la propriété) " "avec une valeur **godot_project_to_export** (c'est le nom de votre projet)" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." @@ -24486,12 +24647,12 @@ msgstr "" "Voilà ! Vous pouvez maintenant éditer votre projet dans l'éditeur Godot et " "le construire dans Xcode lorsque vous voudrez le lancer sur un appareil." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "Services pour iOS" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -34486,6 +34647,22 @@ msgid "Clearcoat" msgstr "Vernis transparent" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " @@ -34496,12 +34673,12 @@ msgstr "" "jouets. En pratique, il s'agit d'une goutte spéculaire plus petite ajoutée " "sur le matériau existant." -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "Anisotropie" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -34513,11 +34690,11 @@ msgstr "" "rendre des matériaux comme l'aluminium brossé plus réalistes. Il fonctionne " "particulièrement bien lorsqu'il est combiné avec des cartes de flux." -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "Occlusion ambiante" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -34534,11 +34711,11 @@ msgstr "" "Il est recommandé de préparer l'occlusion ambiante dans la mesure du " "possible." -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Profondeur" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -34553,11 +34730,11 @@ msgstr "" "complexes, mais cela produit des effets réalistes sur les textures. La " "*profondeur* devrait être utilisé avec une carte de normales." -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "Diffusion souterraine" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " @@ -34567,11 +34744,11 @@ msgstr "" "puis sort. Il est utile pour créer une peau réaliste, du marbre, des " "liquides colorés, etc." -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "Transmission" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " @@ -34582,12 +34759,12 @@ msgstr "" "bien pour les objets minces tels que les feuilles de plantes, l'herbe, les " "oreilles humaines, etc." -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "Réfraction" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -34599,11 +34776,11 @@ msgstr "" "déformer la transparence d'une manière similaire à la réfraction dans la vie " "réelle." -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "Détail" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " @@ -34614,11 +34791,11 @@ msgstr "" "En combinant cela avec des modes UV secondaires ou triplanaires, de " "nombreuses textures intéressantes peuvent être obtenues." -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "UV1 et UV2" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " @@ -34629,11 +34806,11 @@ msgstr "" "peuvent être mis à l'échelle et décalés, ce qui est utile lors de " "l'utilisation de textures répétitives." -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "Cartographie triplanaire" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -34647,7 +34824,7 @@ msgstr "" "La cartographie triplanaire peut être calculée dans le système de " "coordonnées global ou dans celui propre à l'objet." -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." @@ -34656,11 +34833,11 @@ msgstr "" "utilisent le même matériau avec l'option de triplan global, la texture de " "brique s'étend de façon ininterrompue d'un objet à l'autre." -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "Fondu de proximité et distance" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -34675,7 +34852,7 @@ msgstr "" "les puits de lumière ou les indicateurs qui ne sont visibles qu'après une " "distance donnée." -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." @@ -34683,11 +34860,11 @@ msgstr "" "Gardez à l'esprit que l'activation de ces options permet le mélange alpha, " "donc en abuser pour une scène entière n'est généralement pas une bonne idée." -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "Priorité de rendu" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -34842,9 +35019,11 @@ msgstr "" "à son origine. Régler pour obtenir le meilleur résultat visuel." #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 +#, fuzzy msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" "**Contact** : Effectue un raycast court dans l'espace de l'écran pour " "réduire l'espace généré par le biais." @@ -35430,7 +35609,7 @@ msgstr "" "soient rendus dans les réflexions, utilisez le paramètre *Cull Mask* :" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "Intérieur vs extérieur" @@ -35536,6 +35715,13 @@ msgstr "GI Probes" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " @@ -35547,7 +35733,7 @@ msgstr "" "utilisent une technique différente et plus complexe pour produire de la " "lumière indirecte et des réflexions." -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -35562,7 +35748,7 @@ msgstr "" "dynamiques qui se déplacent à l'intérieur d'une de ces sondes recevront " "également un éclairage indirect de la scène automatiquement." -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " @@ -35573,11 +35759,11 @@ msgstr "" "complet en temps réel pour une scène sans avoir à recourir à des cartes de " "lumières." -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "Les principaux inconvénients des ``GIProbe`` sont :" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." @@ -35585,7 +35771,7 @@ msgstr "" "Une petite quantité de lumière peut s'échapper si le niveau n'est pas conçu " "avec soin. Ceci doit-être peaufiné par l'artiste." -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." @@ -35594,7 +35780,7 @@ msgstr "" "lumière, il se peut donc qu'il ne fonctionne pas correctement avec les GPU " "intégrés bas de gamme (il peut être nécessaire de réduire la résolution)." -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -35606,7 +35792,7 @@ msgstr "" "n'importe quelle taille ou forme de pièce peut leur convenir. Les mélanger " "avec Screen Space Reflection fonctionne également bien." -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." @@ -35615,7 +35801,7 @@ msgstr "" "réflexion, ils doivent donc être utilisés avec précaution dans les bonnes " "tailles de subdivision." -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." @@ -35623,7 +35809,7 @@ msgstr "" "Tout comme un ``ReflectionProbe``, configurez simplement le ``GIProbe`` en " "le faisant englober la géométrie qui sera affectée." -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " @@ -35632,7 +35818,7 @@ msgstr "" "Ensuite, assurez-vous que la géométrie sera préparée. C'est important pour " "que \"GIProbe\" reconnaisse les objets, sinon ils seront ignorés :" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" @@ -35641,11 +35827,11 @@ msgstr "" "qui apparaît dans la barre d'outils de l'éditeur 3D pour commencer le " "processus de pré-préparation :" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "Ajout de lumières" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." @@ -35654,7 +35840,7 @@ msgstr "" "par défaut. Des lumières doivent être ajoutées à la scène pour avoir un " "effet." -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" @@ -35663,7 +35849,7 @@ msgstr "" "recommandé d'éteindre tous les éclairages d'ambiance/ciel pour régler cette " "fonction, comme indiqué ci-dessous) :" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" @@ -35671,18 +35857,18 @@ msgstr "" "Dans certaines situations, cependant, la lumière indirecte peut être trop " "faible. Les lumières ont un multiplicateur indirect pour régler cela :" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" "Et comme l'éclairage de ``GIProbe`` est mis à jour en temps réel, cet effet " "est immédiat :" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "Réflexions" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -35694,7 +35880,7 @@ msgstr "" "beaucoup moins de détails que les sondes de réflexion ou Screen Space " "Reflections, mais qu'elles reflètent pleinement le volume." -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " @@ -35705,7 +35891,7 @@ msgstr "" "à 3 étapes. Cela permet d'avoir des réflexions précises là où c'est " "nécessaire :" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." @@ -35714,7 +35900,7 @@ msgstr "" "Cette fonction peut être désactivée lorsque vous activez le réglage " "*Interior*." -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." @@ -35722,7 +35908,7 @@ msgstr "" "La différence devient claire dans l'image ci-dessous, où la lumière du ciel " "est diffuser à l'intérieur puis est ignorer." -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." @@ -35730,16 +35916,16 @@ msgstr "" "Comme les bâtiments complexes peuvent mélanger l'intérieur et l'extérieur, " "la combinaison de GIProbes pour les deux parties fonctionne bien." -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "Ajustement" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" "Les GI Probes prennent en charge quelques paramètres pour l'ajustement :" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." @@ -35748,11 +35934,11 @@ msgstr "" "est généralement bonne pour les petites et moyennes régions. Les plus " "grandes subdivisions utilisent plus de mémoire." -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "**Extents** Taille de la sonde. Peut être modifié à partir du gadget." -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." @@ -35761,7 +35947,7 @@ msgstr "" "valeurs plus élevées permettent d'obtenir une lumière plus brillante, mais " "avec moins de détails de couleur." -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." @@ -35770,13 +35956,13 @@ msgstr "" "la lumière indirecte plus brillante (bien qu'il soit préférable de l'ajuster " "à partir de la lumière elle-même)." -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" "**Propagation** La quantité de lumière qui se propage à l'intérieur de la " "sonde." -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." @@ -35784,7 +35970,7 @@ msgstr "" "**Bias** La valeur utilisée pour éviter l'auto-occlusion lors du traçage du " "cône de voxel doit généralement être supérieure à 1,0 (1== taille de voxel)." -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." @@ -35792,11 +35978,11 @@ msgstr "" "**Normal Bias** Autre type de biais utile pour certaines scènes. " "Expérimentez avec celui-ci si un biais régulier ne fonctionne pas." -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "Qualité" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -36633,7 +36819,7 @@ msgstr "" msgid "Tonemap" msgstr "Tonemap" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -36646,14 +36832,14 @@ msgstr "" "plus homogènes, même si le résultat n’est pas très bon. Les options de tone-" "mapping sont :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" "**Mode:** Le mode de Tone mapping , peut être Linear, Reindhart, Filmic, or " "Aces." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." @@ -36661,7 +36847,7 @@ msgstr "" "**Exposure:** Tone mapping exposure qui simule la quantité de lumière reçue " "au fil du temps." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." @@ -36669,11 +36855,11 @@ msgstr "" "**White:** Tone Mapping blanc, qui simule où blanc est situé dans l’échelle " "(par défaut 1,0)." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "Exposition automatique (HDR)" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -36690,7 +36876,7 @@ msgstr "" "automatique simule la caméra (ou l’œil) qui s'efforce de s’adapter entre les " "zones clairs et sombres et leurs différentes quantités de lumière." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -36708,7 +36894,7 @@ msgstr "" "valeurs entre 3.0 et 6.0 sont suffisantes pour simuler un environnement " "intérieur-extérieur." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " @@ -36719,7 +36905,7 @@ msgstr "" "saignent dans le glow buffer, créant ainsi l'effet de bloom typique en " "photographie." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" @@ -36728,7 +36914,7 @@ msgstr "" "automatique sont définies par défaut, mais vous pouvez toujours les " "modifier :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." @@ -36737,7 +36923,7 @@ msgstr "" "lumineuses produisent des images plus lumineuses, des valeurs plus petites " "produisent des images plus sombres." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." @@ -36746,14 +36932,14 @@ msgstr "" "ajuster. La luminance est la moyenne de la lumière dans tous les pixels de " "l'écran." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" "**Max Luma:**Luminance maximale que l'exposition automatique visera pour " "ajuster." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." @@ -36761,11 +36947,11 @@ msgstr "" "**Vitesse:** Vitesse à laquelle la luminance se corrige d'elle-même. Plus la " "valeur est élevée, plus la correction est rapide." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "Effets de mi et post-traitement" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." @@ -36773,11 +36959,11 @@ msgstr "" "Un grand nombre d'effets de milieu et de post-traitement largement utilisés, " "sont pris en charge dans l'Environment." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "Screen-Space Reflections (SSR)" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -36792,7 +36978,7 @@ msgstr "" "uns avec les autres (objet au-dessus du sol, au-dessus d'une table, flottant " "sur l'eau, etc)." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -36804,14 +36990,14 @@ msgstr "" "calculées). Cela peut être utilisé pour faire des personnages, des voitures, " "etc. réfléchir sur les surfaces environnantes lors du déplacement." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" "Quelques paramètres contrôlés par l'utilisateur sont disponibles pour mieux " "ajuster la technique :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." @@ -36819,7 +37005,7 @@ msgstr "" "**Max Steps** détermine la longueur de la réflexion. Plus ce nombre est " "élevé, plus c'est coûteux à calculer." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." @@ -36827,7 +37013,7 @@ msgstr "" "**Fade In** permet d'ajuster la courbe de fondu enchaîné, ce qui est utile " "pour rendre la surface de contact plus douce." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." @@ -36835,7 +37021,7 @@ msgstr "" "**Fade Out** permet d'ajuster la courbe de fondu enchaîné, de sorte que la " "limite de pas s'estompe en douceur." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." @@ -36844,7 +37030,7 @@ msgstr "" "dans l'espace de l'écran aux écarts. Plus la valeur est grande, plus il y " "aura d'écarts ignorés." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." @@ -36853,7 +37039,7 @@ msgstr "" "obtenir une approximation de la rugosité des objets présentant cette " "caractéristique de matériau." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." @@ -36862,11 +37048,11 @@ msgstr "" "pour une géométrie opaque réfléchissante. Les objets transparents ne peuvent " "pas être réfléchis." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "Screen-Space Ambient Occlusion (SSAO)" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -36883,7 +37069,7 @@ msgstr "" "méthodes proposées précédemment agissent davantage à plus grande échelle " "(grandes régions) plutôt qu'au niveau de la géométrie plus petite." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " @@ -36894,7 +37080,7 @@ msgstr "" "simuler des situations où la lumière n'est pas capable de remplir d'éléments " "creux ou concaves." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " @@ -36905,7 +37091,7 @@ msgstr "" "les zones concaves soient plus sombres, simulant un chemin d'entrer de la " "lumière étroit :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " @@ -36915,7 +37101,7 @@ msgstr "" "ne pas être capable de l'apprécier. En effet, SSAO n'agit que sur la lumière " "*ambiante* et non sur la lumière directe." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -36927,7 +37113,7 @@ msgstr "" "avec la lumière directe, utilisez le paramètre **Light Affect** (même si ce " "n'est pas correct, certains artistes aiment son aspect)." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" @@ -36935,11 +37121,11 @@ msgstr "" "SSAO est plus esthétique lorsqu'il est combiné avec une véritable source de " "lumière indirecte, comme GIProbe :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "Le réglage de SSAO est possible avec plusieurs paramètres :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." @@ -36948,7 +37134,7 @@ msgstr "" "ces deux paramètres sont disponibles. Le rayon est en unités mondiales " "(métriques)." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." @@ -36956,7 +37142,7 @@ msgstr "" "**Radius2/Intensity2:** Un rayon/intensité secondaire peut être utilisé. La " "combinaison d'un AO à grand et à petit rayon fonctionne généralement bien." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." @@ -36964,7 +37150,7 @@ msgstr "" "**Bias:** Ceci peut être modifié pour résoudre l'auto-occlusion, bien que la " "valeur par défaut fonctionne généralement assez bien." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." @@ -36973,7 +37159,7 @@ msgstr "" "l'augmentation de ce curseur peut également affecter la lumière directe. " "Certains artistes préfèrent cet effet." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." @@ -36982,7 +37168,7 @@ msgstr "" "sphère pour chaque pixel. La haute qualité ne fonctionne bien que sur les " "GPU modernes." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -36996,7 +37182,7 @@ msgstr "" "3x3 adoucira mieux l'image (avec un peu d'effet dithering-like), mais ne " "conserve pas les détails locaux ainsi." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." @@ -37004,11 +37190,11 @@ msgstr "" "**Edge Sharpness** : Ceci peut être utilisé pour préserver la netteté des " "arêtes (évite les zones sans AO sur les plis)." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "Profondeur de champ / Flou lointain" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " @@ -37018,8 +37204,8 @@ msgstr "" "Il brouille les objets derrière une plage donnée. Il a une **Distance** " "initiale avec une région de **Transition** (en unités mondiales) :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." @@ -37028,11 +37214,11 @@ msgstr "" "importants, il peut être nécessaire d'ajuster la **Quality** afin d'éviter " "les artefacts." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "Profondeur de champ / flou de proximité" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " @@ -37043,7 +37229,7 @@ msgstr "" "direction opposée jusqu'au flou). Il a une **Distance** initiale avec une " "région de **Transition** (en unités mondiales) :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" @@ -37051,11 +37237,11 @@ msgstr "" "Il est courant d'utiliser les deux flous ensemble pour concentrer " "l'attention du spectateur sur un objet donné :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "Lueur" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " @@ -37066,7 +37252,7 @@ msgstr "" "se dirige généralement vers des zones plus sombres de l'image. Ceci est " "simulé dans Godot avec l'effet **Glow**." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" @@ -37075,7 +37261,7 @@ msgstr "" "ou l'autre de ces deux conditions doit se produire pour qu'il soit vraiment " "visible :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -37091,7 +37277,7 @@ msgstr "" "existe également un paramètre supplémentaire, **HDR Scale**, qui permet de " "mettre à l'échelle (éclaircir ou assombrir) la lumière qui dépasse le seuil." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." @@ -37100,19 +37286,19 @@ msgstr "" "envoie l'ensemble de l'écran au processeur de luminescence à des valeurs " "plus élevées." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" "Dans les deux cas, la lumière commencera à saigner hors des zones les plus " "claires." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" "Une fois que la lueur est visible, elle peut être contrôlée avec quelques " "paramètres supplémentaires :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." @@ -37120,7 +37306,7 @@ msgstr "" "**Intensity** est une échelle globale de l'effet, elle peut être renforcée " "ou affaiblie (0,0 l'élimine)." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -37132,11 +37318,11 @@ msgstr "" "dilater vers l'extérieur. En général, il n'est pas nécessaire de changer " "cela, car la taille peut être ajustée plus efficacement avec les **Niveaux**." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "Le **Blend Mode** de l'effet peut également être modifié :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " @@ -37147,7 +37333,7 @@ msgstr "" "être utilisé, mais il peut être beau avec une faible intensité Bloom " "(produit un effet de rêve)." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." @@ -37155,7 +37341,7 @@ msgstr "" "**Screen** est celui par défaut. Il assure que la lueur ne brille jamais " "plus que lui-même et fonctionne très bien comme un tout autour." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." @@ -37164,7 +37350,7 @@ msgstr "" "des couleurs autour des objets. Ce mode fonctionne mieux sur les scènes " "sombres." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." @@ -37172,7 +37358,7 @@ msgstr "" "**Replace** peut être utilisé pour brouiller tout l'écran ou déboguer " "l'effet. Il montre simplement l'effet de lueur sans l'image ci-dessous." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " @@ -37183,7 +37369,7 @@ msgstr "" "autour des objets, tandis que les grands niveaux sont des lueurs floues qui " "couvrent l'ensemble de l'écran :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" @@ -37191,7 +37377,7 @@ msgstr "" "La vraie force de ce système, cependant, est de combiner les niveaux pour " "créer des motifs lumineux plus intéressants :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " @@ -37202,11 +37388,11 @@ msgstr "" "L'activation de **Bicubic Upscaling** permet de s'en débarrasser, à un coût " "de performance minimal." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "Ajustements" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." @@ -37214,7 +37400,7 @@ msgstr "" "A la fin du traitement, Godot offre la possibilité d'effectuer quelques " "réglages standard d'image." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" @@ -37222,7 +37408,7 @@ msgstr "" "La première est la possibilité de modifier la luminosité, le contraste et la " "saturation typiques :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" @@ -37230,7 +37416,7 @@ msgstr "" "La seconde est de fournir un dégradé de correction de couleur. Un dégradé " "noir à blanc régulier comme celui qui suit ne produira aucun effet :" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -38843,11 +39029,11 @@ msgstr "" "regarder autour de lui avec la souris et de sauter. Ajoutez le code suivant " "à ``Player.gd`` :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "C'est beaucoup de code, alors décomposons-le fonction par fonction :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " @@ -38857,14 +39043,14 @@ msgstr "" "apprendre beaucoup en tapant le code manuellement, vous pouvez copier et " "coller le code de cette page directement dans l'éditeur de script." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" "Si vous faites cela, tout le code copié utilisera des espaces au lieu de " "tabulations." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -38876,7 +39062,7 @@ msgstr "" "convertira tous les espaces en tabulations. Vous pouvez sélectionner " "\"Convert Indent To Spaces\" pour convertir les tabulations en espaces." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." @@ -38884,7 +39070,7 @@ msgstr "" "Tout d'abord, nous définissons quelques variables de classe pour dicter " "comment notre joueur va se déplacer dans le monde." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " @@ -38895,20 +39081,20 @@ msgstr "" "avons accès à ces variables à partir de n'importe quel endroit dans le " "script." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "Passons en revue chacune des variables de classe :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "``GRAVITY`` : Comme la gravité nous tire vers le bas." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" "``vel`` : la vélocité de notre :ref:`CinematicBody `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." @@ -38916,11 +39102,11 @@ msgstr "" "``MAX_SPEED`` : La vitesse la plus rapide que nous puissions atteindre. Une " "fois que nous aurons atteint cette vitesse, nous n'irons pas plus vite." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "``JUMP_SPEED`` : À quelle hauteur nous pouvons sauter." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." @@ -38928,7 +39114,7 @@ msgstr "" "``ACCEL`` : L'accélération. Plus la valeur est élevée, plus vite nous " "atteignons la vitesse maximale." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." @@ -38936,7 +39122,7 @@ msgstr "" "``DEACCEL`` : La décéléreration. Plus la valeur est élevée, plus vite nous " "nous arrêterons complètement." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." @@ -38944,11 +39130,11 @@ msgstr "" "``MAX_SLOPE_ANGLE``: L'angle le plus raide que notre :ref:`KinematicBody " "` considère comme un 'plancher'." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "``camera`` : Le nœud :ref:`Camera `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." @@ -38956,7 +39142,7 @@ msgstr "" "``rotation_helper`` : Un nœud :ref:`Spatial ` contenant tout " "ce que nous voulons faire tourner sur l'axe X (haut et bas)." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " @@ -38966,7 +39152,7 @@ msgstr "" "de ``0.05`` fonctionne bien pour ma souris, mais vous devrez peut-être la " "modifier en fonction de la sensibilité de votre souris." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " @@ -38977,7 +39163,7 @@ msgstr "" "``JUMP_SPEED``vous pouvez obtenir un personnage plus 'flottant'. N'hésitez " "pas à expérimenter !" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." @@ -38986,7 +39172,7 @@ msgstr "" "majuscules comme les autres constantes, mais ``MOUSE_SENSITIVITY`` n'est pas " "une constante." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -39000,11 +39186,11 @@ msgstr "" "des paramètres personnalisables. Donc, dans un effort pour nous rappeler de " "la traiter comme une constante, elle est nommée en majuscules." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "Voyons maintenant la fonction ``_ready`` :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." @@ -39012,7 +39198,7 @@ msgstr "" "On obtient d'abord les nœuds ``camera`` et ``rotation_helper`` et on les " "stocke dans leurs variables." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." @@ -39020,7 +39206,7 @@ msgstr "" "Ensuite, nous devons régler le mode de capture de la souris, de sorte que la " "souris ne puisse pas quitter la fenêtre de jeu." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " @@ -39030,7 +39216,7 @@ msgstr "" "pour deux raisons : La première raison étant que nous ne voulons pas que le " "joueur voit le curseur de sa souris en jouant." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -39043,7 +39229,7 @@ msgstr "" "perdrait le focus. Pour s'assurer qu'aucun de ces problèmes ne se produise, " "nous capturons le curseur de la souris." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " @@ -39053,11 +39239,11 @@ msgstr "" "de souris. Nous utiliserons seulement ``MOUSE_MODE_CAPTURED``et " "``MOUSE_MODE_VISIBLE`` dans cette série de tutoriels." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "Voyons maintenant ``_processus_physique`` :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." @@ -39065,7 +39251,7 @@ msgstr "" "Tout ce que nous faisons dans ``_physics_process``` est d'appeler deux " "fonctions : ``process_input`` et ``process_movement``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " @@ -39075,7 +39261,7 @@ msgstr "" "entrées joueur. Nous voulons l'appeler d'abord, avant toutes choses, pour " "que nous puissions travailler avec les dernière entrées joueur." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." @@ -39084,16 +39270,16 @@ msgstr "" "nécessaires au :ref:`KinematicBody ` pour lui permettre " "de se déplacer dans le monde du jeu." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "Regardons ``process_input`` suivant :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" "Tout d'abord, nous réglons ``dir`` à une :ref:`Vector3 ` vide." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " @@ -39104,7 +39290,7 @@ msgstr "" "précédente du joueur affecte le joueur au-delà d'un seul appel de " "``process_movement``, nous réinitialisons ``dir``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." @@ -39112,7 +39298,7 @@ msgstr "" "Ensuite, nous récupérons la transformation globale de la caméra et la " "stockons également, dans la variable ``cam_xform``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " @@ -39123,7 +39309,7 @@ msgstr "" "ont trouvé les vecteurs directifs déroutants, alors prenons une seconde pour " "expliquer comment ils fonctionnent :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " @@ -39133,7 +39319,7 @@ msgstr "" "les objets sont placés par rapport à un point d'origine constant. Chaque " "objet, qu'il soit en 2D ou en 3D, a une position dans l'espace mondial." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " @@ -39143,7 +39329,7 @@ msgstr "" "position, la rotation et l'échelle de chaque objet peuvent être mesurées par " "un seul point fixe connu, appelé origine." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." @@ -39151,7 +39337,7 @@ msgstr "" "Dans Godot, l’origine est à la position ``(0, 0, 0)`` avec une rotation de " "``(0, 0, 0)`` et une échelle de``(1, 1, 1)``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " @@ -39161,7 +39347,7 @@ msgstr "" "`Spatial `, un gadget apparaît. Chacune des flèches pointe en " "utilisant les directions de l'espace mondial par défaut." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" @@ -39169,7 +39355,7 @@ msgstr "" "Si vous voulez vous déplacer en utilisant les vecteurs directionnels de " "l'espace mondial, vous feriez quelque chose comme ceci :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " @@ -39180,11 +39366,11 @@ msgstr "" "variables :ref:`Vector3 ` et entrer les valeurs " "pointant dans chaque direction." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "Voici à quoi ressemble l'espace mondial en 2D :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" @@ -39192,12 +39378,12 @@ msgstr "" "Les images suivantes ne sont que des exemples. Chaque flèche/rectangle " "représente un vecteur directionnel" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "Et voici à quoi cela ressemble pour la 3D :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -39209,14 +39395,14 @@ msgstr "" "Quelle que soit la façon dont vous bougez, faites pivoter ou mettez à " "l'échelle un objet, l'espace du monde *indiquera toujours la même direction*." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" "L'espace local est différent, car il prend en compte la rotation de l'objet." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -39228,7 +39414,7 @@ msgstr "" "l'origine peut se trouver à de nombreux endroits, les valeurs dérivées de " "l'espace local changent en fonction de la position de l'origine." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." @@ -39236,7 +39422,7 @@ msgstr "" "Cette question sur stack overflow a une bien meilleure explication de " "l'espace mondial et de l'espace local." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " @@ -39246,7 +39432,7 @@ msgstr "" "eye-space-in-game-development (L'espace local et l'espace oculaire sont " "essentiellement la même chose dans ce contexte)" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " @@ -39257,7 +39443,7 @@ msgstr "" "obtenir le :ref:`Basis ` depuis le :ref:`Transform " "`." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " @@ -39267,7 +39453,7 @@ msgstr "" "Chacun de ces vecteurs pointent vers chacun des vecteurs de l'espace local " "venant de cet objet." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" @@ -39275,11 +39461,11 @@ msgstr "" "Pour utiliser les vecteurs directionnels locaux du nœud :ref:`Spatial " "`, nous utilisons ce code :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "Voici à quoi ressemble l'espace local en 2D :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -39291,7 +39477,7 @@ msgstr "" "rotation de l'objet à gauche, qui ressemble exactement à l'exemple 3D pour " "l'espace local." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " @@ -39301,7 +39487,7 @@ msgstr "" "sur T ou sur le petit bouton cube lorsque vous avez sélectionné un nœud basé " "sur :ref:`Spatial `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -39316,11 +39502,11 @@ msgstr "" "de l'objet, par opposition à l'utilisation de vecteurs mondiaux, qui donnent " "la direction du point de vue du monde." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "Bon, revenons à ``process_input`` :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " @@ -39331,7 +39517,7 @@ msgstr "" "faire une sorte d'axe virtuel, pour représenter l'entrée joueur pour le " "mouvement." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." @@ -39339,7 +39525,7 @@ msgstr "" "Cela peut sembler exagéré pour un simple clavier, mais cela aura un sens " "plus tard, lorsque nous ajouterons des entrées de joypad." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." @@ -39347,7 +39533,7 @@ msgstr "" "En fonction de l'action directionnelle de mouvement pressée, on ajoute ou on " "soustrait à ``input_movement_vector``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " @@ -39358,7 +39544,7 @@ msgstr "" "``input_inmovement_vector`` sont à l'intérieur d'un cercle d'unité de rayon " "``1``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -39370,7 +39556,7 @@ msgstr "" "avance ou recule, nous ajoutons l'axe local ``Z'' de la caméra pour que le " "lecteur avance ou recule par rapport à la caméra." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -39384,7 +39570,7 @@ msgstr "" "basis.z.normalisé()`` parce que l'axe Z de notre caméra est orienté vers " "l'arrière par rapport au reste du joueur." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -39397,7 +39583,7 @@ msgstr "" "gauche/droite par rapport à la caméra lorsque le joueur appuie vers la " "gauche/droite." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -39410,13 +39596,13 @@ msgstr "" "appuyée. Si c'est le cas, alors nous réglons la vélocité ``Y`` du joueur sur " "``JUMP_SPEED``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" "Parce que nous réglons la vélocité Y, le joueur va sauter dans les airs." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -39429,7 +39615,7 @@ msgstr "" "libérer le curseur, ce qui signifie qu'il serait bloqué jusqu'à ce que vous " "terminiez le runtime." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " @@ -39439,7 +39625,7 @@ msgstr "" "(libérée) ou non. Si c'est le cas, nous le capturons, et si ce n'est pas le " "cas, nous le rendons visible (nous le libérons)." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." @@ -39448,11 +39634,11 @@ msgstr "" "reviendrons plusieurs fois sur cette fonction au fur et à mesure que nous " "ajouterons de la complexité à notre joueur." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "Regardons maintenant le ``process_movement`` :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." @@ -39460,7 +39646,7 @@ msgstr "" "Tout d'abord, nous nous assurons que ``dir`` n'a pas de mouvement sur l'axe " "``Y`` en réglant sa valeur ``Y`` à zéro." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -39473,7 +39659,7 @@ msgstr "" "ligne droite ou en diagonale. Si nous ne nous normalisions pas, le joueur se " "déplacerait plus rapidement sur la diagonale qu'en allant tout droit." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." @@ -39481,7 +39667,7 @@ msgstr "" "Ensuite, nous ajoutons la gravité au joueur en ajoutant ``GRAVITY * delta`` " "à la vitesse ``Y`` du joueur." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." @@ -39489,7 +39675,7 @@ msgstr "" "Ensuite, nous assignons la vitesse du joueur à une nouvelle variable " "(appelée ``hvel``) et supprimons tout mouvement sur l'axe ``Y``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " @@ -39500,13 +39686,13 @@ msgstr "" "maximale du joueur pour savoir jusqu'où le joueur se déplacera dans la " "direction fournie par ``dir``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" "Ensuite, nous créons une nouvelle variable pour l'accélération, appelée " "``accel``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -39518,7 +39704,7 @@ msgstr "" "``Y``, ce qui signifie que nous vérifions seulement si le joueur avance, " "recule, va à gauche ou va à droite." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " @@ -39528,7 +39714,7 @@ msgstr "" "constante ``ACCEL`` pour que le joueur accélère, sinon nous réglons " "``accel`` sur notre constante ``DEACCEL`` pour que le joueur ralentisse." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -39541,7 +39727,7 @@ msgstr "" "` gérer le déplacement du lecteur dans le monde " "physique." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" @@ -39549,7 +39735,7 @@ msgstr "" "Tout le code dans ``process_movement`` est exactement le même que le code de " "mouvement de la démo de Kinematic Character !" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" @@ -39557,7 +39743,7 @@ msgstr "" "La dernière fonction que nous avons est la fonction ``_input``, et " "heureusement elle est assez courte :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " @@ -39568,7 +39754,7 @@ msgstr "" "Nous voulons aussi vérifier si le curseur est capturé, car nous ne voulons " "pas tourner s'il ne l'est pas." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." @@ -39577,7 +39763,7 @@ msgstr "" "` pour une liste des événements d'entrée " "possibles." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" @@ -39587,7 +39773,7 @@ msgstr "" "curseur est capturé, nous tournons en fonction du mouvement relatif de la " "souris fourni par :ref:`InputEventMouseMotion `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " @@ -39597,7 +39783,7 @@ msgstr "" "utilisant la valeur ``Y`` du mouvement relatif de la souris, fournie par :" "ref:`InputEventMouseMotion `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." @@ -39605,7 +39791,7 @@ msgstr "" "Ensuite, nous faisons pivoter le :ref:``KinematicBody ` " "sur l'axe ``Y`` par la valeur ``X`` du mouvement relatif de la souris." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " @@ -39616,7 +39802,7 @@ msgstr "" "et ``-1`` respectivement. Le mouvement vers la droite et vers la gauche est " "``1`` et ``-1`` respectivement." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " @@ -39627,7 +39813,7 @@ msgstr "" "mouvement de la souris tournant à gauche et à droite fasse tourner le " "lecteur à gauche et à droite dans la même direction." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " @@ -39637,7 +39823,7 @@ msgstr "" "qu'elle soit entre ``-70`` et ``70`` degrés afin que le joueur ne puisse pas " "se tourner la tête en bas." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." @@ -39645,7 +39831,7 @@ msgstr "" "Voir :ref:`using transforms ` pour plus d'informations " "sur les transformations en rotation." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " @@ -39656,7 +39842,7 @@ msgstr "" "parties du tutoriel, assurez-vous donc de la garder ouverte dans l'un des " "onglets de votre scène." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -39669,11 +39855,11 @@ msgstr "" "capable de marcher, de sauter dans les airs et de regarder autour de vous à " "l'aide de la souris." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "Donner au joueur une lampe flash et la possibilité de sprinter" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." @@ -39681,7 +39867,7 @@ msgstr "" "Avant de commencer à faire fonctionner les armes, il y a quelques autres " "choses que nous devrions ajouter." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" @@ -39689,13 +39875,13 @@ msgstr "" "De nombreux jeux FPS ont une option pour le sprint et une lampe de poche. " "Nous pouvons les ajouter facilement à notre joueur, alors faisons-le !" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" "Tout d'abord, nous avons besoin de quelques variables de classe " "supplémentaires dans notre script de joueur :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." @@ -39703,7 +39889,7 @@ msgstr "" "Toutes les variables de sprint fonctionnent exactement de la même manière " "que les variables non sprint avec des noms similaires." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " @@ -39713,7 +39899,7 @@ msgstr "" "sprinter, et ``flashlight`` est une variable que nous allons utiliser pour " "tenir le nœud de lumière flash du joueur." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" @@ -39721,7 +39907,7 @@ msgstr "" "Il nous faut maintenant ajouter quelques lignes de code, en commençant par " "``_ready``. Ajouter ce qui suit à ``_ready`` :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." @@ -39729,7 +39915,7 @@ msgstr "" "Ceci obtient le nœud ``Flashlight`` et l'affecte à la variable " "``flashlight``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" @@ -39737,11 +39923,11 @@ msgstr "" "Nous devons maintenant changer une partie du code dans ``process_input``. " "Ajoutez ce qui suit quelque part dans ``process_input`` :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "Revoyons les ajouts :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -39755,7 +39941,7 @@ msgstr "" "joueur plus rapide lorsqu'il sprinte. Ici, dans ``process_input``, nous " "allons simplement changer la variable ``is_sprinting``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -39768,7 +39954,7 @@ msgstr "" "si ``flashlight``est visible dans l'arbre de scène. Si c'est le cas, on le " "cache, et si ce n'est pas le cas, on le montre." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" @@ -39777,7 +39963,7 @@ msgstr "" "``process_movement``. Tout d'abord, remplacer ``target *= MAX_SPEED`` par " "ce qui suit :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " @@ -39787,7 +39973,7 @@ msgstr "" "vérifions d'abord si le joueur sprinte ou non. Si le joueur sprinte, on " "multiplie ``target`` par ``MAX_SPRINT_SPEED``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" @@ -39795,7 +39981,7 @@ msgstr "" "Il ne reste plus qu'à modifier l'accélération au sprint. Modifier ``accel = " "ACCEL`` par ce qui suit :" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." @@ -39803,7 +39989,7 @@ msgstr "" "Maintenant, lorsque le joueur sprinte, nous utiliserons ``SPRINT_ACCEL`` au " "lieu de ``ACCEL``, ce qui accélérera le joueur plus rapidement." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" @@ -39812,7 +39998,7 @@ msgstr "" "bouton ``shift``, et vous pouvez allumer et éteindre la lampe flash en " "appuyant sur le bouton ``F`` !" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" @@ -39820,7 +40006,7 @@ msgstr "" "Allez l'essayer ! Vous pouvez changer les variables de classe liées au " "sprint pour rendre le joueur plus rapide ou plus lent lors du sprint !" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -39830,7 +40016,7 @@ msgstr "" msgid "Final notes" msgstr "Notes finales" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" @@ -39838,7 +40024,7 @@ msgstr "" "Whew ! C'était beaucoup de travail. Maintenant, vous avez un personnage à la " "première personne qui fonctionne parfaitement !" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." @@ -39846,7 +40032,7 @@ msgstr "" "Dans :ref:`doc_fps_tutorial_part_tutorial_part_two` nous allons ajouter des " "armes à feu à notre personnage joueur." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" @@ -39854,7 +40040,7 @@ msgstr "" "A ce stade, nous avons recréé la démo du personnage Kinematic du point de " "vue de la première personne avec un sprint et une lumière flash !" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " @@ -39864,7 +40050,7 @@ msgstr "" "toutes sortes de jeux à la première personne. Par exemple : Jeux d'horreur, " "jeux de plates-formes, jeux d'aventure, et plus encore !" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -39874,7 +40060,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "Si jamais vous vous perdez, n'oubliez pas de relire le code !" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -48077,7 +48263,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -48088,99 +48274,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -48188,11 +48374,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -48203,26 +48389,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -48231,7 +48417,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -49022,7 +49208,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -54631,10 +54817,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "Internationalisation" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "Internationaliser des jeux" @@ -63299,7 +63481,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -74256,6 +74438,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -74266,52 +74452,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -76167,9 +76353,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -76198,7 +76384,7 @@ msgstr "Licences de tiers" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -76226,7 +76412,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -76250,9 +76436,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -76657,7 +76843,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -76943,7 +77129,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -77104,17 +77290,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -77123,7 +77308,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -77196,7 +77381,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -77225,12 +77410,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -77250,57 +77434,54 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" -msgstr "" +#, fuzzy +msgid "PulseAudio development libraries" +msgstr "Considérations actives lors du développement" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -77308,7 +77489,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -77316,57 +77497,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -77377,6 +77567,10 @@ msgstr "Compiler pour macOS" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -78284,7 +78478,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -78292,18 +78485,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "Variables d'environnement" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -78311,27 +78504,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -78339,21 +78532,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -78364,12 +78557,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -78377,7 +78570,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -78386,28 +78579,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "Et des modèles d'exportation activés pour Mono :" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -78417,7 +78610,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -78427,19 +78620,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "Exemple (X11)" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -78448,7 +78641,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -78456,14 +78649,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -78472,57 +78665,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -78533,7 +78726,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -78543,55 +78736,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Exporter pour Android" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -78600,65 +78793,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "Options de ligne de commande" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -78789,7 +78982,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" @@ -84752,6 +84945,85 @@ msgstr "" "`Zeef Godot Engine : Un répertoire de ressources créé par Andre Schmitz " "`_" +#~ msgid "" +#~ ":ref:`Autoloads versus internal nodes " +#~ "`" +#~ msgstr "" +#~ ":ref:`Chargements automatiques VS nœuds internes " +#~ "`" + +#~ msgid ":ref:`Advanced post-processing `" +#~ msgstr ":ref:`Post-traitement avancé `" + +#~ msgid "" +#~ ":ref:`Binding to external libraries `" +#~ msgstr "" +#~ ":ref:`Lier aux librairies externes `" + +#~ msgid "Killer features" +#~ msgstr "Fonctionnalités de tueurs" + +#~ msgid "" +#~ "Note that Godot editor allows you to dock each panel at the side of the " +#~ "scene editor you wish." +#~ msgstr "" +#~ "Notez que l'éditeur Godot vous permet d'accrocher chaque panneau sur le " +#~ "côté souhaité de l'éditeur de scène." + +#~ msgid "" +#~ "These are the most important concepts you need to remember: \"node\", " +#~ "\"parent node\", and \"child node\"." +#~ msgstr "" +#~ "Ce sont les concepts les plus importants dont vous devez vous souvenir : " +#~ "\"nœud\", \"nœud parent\" et \"nœud enfant\"." + +#~ msgid "" +#~ "We previously observed that there is no perfect solution to set a project " +#~ "architecture. Any solution will work for Unity and Godot, so this point " +#~ "has a lesser importance." +#~ msgstr "" +#~ "Nous avons précédemment observé qu'il n'y a pas de solution parfaite pour " +#~ "définir une architecture de projet. Toute solution fonctionnera pour " +#~ "Unity et Godot, alors ce point a moins d'importance." + +#~ msgid "Prefab -> Externalized branch" +#~ msgstr "Préfab -> Branche externalisée" + +#~ msgid "" +#~ "Here's an example that creates a custom signal in one script and connects " +#~ "the custom signal to a method in a separate script, using the :ref:" +#~ "`Object.connect() ` method:" +#~ msgstr "" +#~ "Voici un exemple qui créé un signal personnalisé dans un script et le " +#~ "connecte à une méthode dans un autre script, en utilisant la méthode :ref:" +#~ "`Object.connect() ` :" + +#~ msgid "" +#~ "Here is an example that creates a connection between a button's " +#~ "``pressed`` signal and a method, binding the button instance to the " +#~ "connection. The handler uses the bound argument to print which button " +#~ "instance was pressed." +#~ msgstr "" +#~ "Voici un exemple qui créé une connexion entre le signal ``pressed`` d'un " +#~ "bouton et une méthode, en attachant l'instance du bouton à la connexion. " +#~ "Le gestionnaire utilise l'argument attaché pour afficher quelle est " +#~ "l'instance de bouton qui a été appuyée." + +#~ msgid "" +#~ "Signals are generated by the :ref:`Object.emit_signal() " +#~ "` method which broadcasts the signal and " +#~ "arguments." +#~ msgstr "" +#~ "Les signaux sont générés par la méthode :ref:`Object.emit_signal() " +#~ "`, qui diffuse le signal et les " +#~ "arguments." + +#~ msgid "" +#~ "Extending a previous example to use all the features of GDScript signals:" +#~ msgstr "" +#~ "Extension d'un exemple précédent pour qu'il utilise toutes les " +#~ "fonctionnalités des signaux de GDScript :" + #~ msgid "" #~ "Consider breaking a line when it's longer than 100 characters. And it's " #~ "also a good practice to insert a line feed (LF) character at the end of a " diff --git a/weblate/he.po b/weblate/he.po index b51d2e6963..351395e430 100644 --- a/weblate/he.po +++ b/weblate/he.po @@ -13,7 +13,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Hebrew `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "התיעוד העיקרי בשביל האתר מסודר לפי הסעיפים הבאים:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "כללי" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "מתחילים" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "מדריכים" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "פיתוח" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "קהילה" @@ -1068,363 +1072,363 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "אנימציות" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "אנימציות" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "יצירת תוכן" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "אנימציות" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1886,7 +1890,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "עורך" @@ -2181,11 +2185,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2195,14 +2201,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2882,8 +2888,8 @@ msgstr "קבוצות" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3061,7 +3067,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4266,36 +4272,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4305,17 +4311,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4323,7 +4329,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4331,28 +4337,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4362,25 +4368,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4457,7 +4463,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4881,9 +4887,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7645,7 +7650,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8730,224 +8735,224 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "רישיון" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 #, fuzzy msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "X11 (לינוקס, /*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8955,65 +8960,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9023,59 +9029,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9085,142 +9093,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9228,7 +9227,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9236,30 +9235,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9267,7 +9265,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9275,28 +9273,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "אנימציות" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9305,7 +9303,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9314,11 +9312,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9326,7 +9324,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11425,11 +11423,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11440,67 +11445,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11510,43 +11577,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11554,7 +11621,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11562,11 +11629,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12078,7 +12145,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14166,7 +14233,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14998,10 +15065,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15016,273 +15082,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18259,91 +18322,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25574,18 +25643,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25593,11 +25678,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25607,11 +25692,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25620,34 +25705,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25655,33 +25740,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25689,17 +25774,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25708,17 +25793,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25838,7 +25923,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26255,7 +26341,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26330,13 +26416,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26345,30 +26438,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26376,63 +26469,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26440,82 +26533,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27112,7 +27205,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27120,28 +27213,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27151,7 +27244,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27161,57 +27254,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27220,7 +27313,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27228,52 +27321,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27283,28 +27376,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27312,47 +27405,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27361,65 +27454,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27429,27 +27522,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27457,78 +27550,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28770,23 +28863,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28794,90 +28887,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28886,30 +28979,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28917,120 +29010,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29038,13 +29131,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29052,44 +29145,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29097,14 +29190,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29113,37 +29206,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29151,7 +29244,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29160,7 +29253,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29168,7 +29261,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29176,12 +29269,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29189,30 +29282,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29220,30 +29313,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29251,14 +29344,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29266,86 +29359,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29353,62 +29446,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29417,7 +29510,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29425,44 +29518,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29472,32 +29565,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29507,7 +29600,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36801,7 +36894,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36812,99 +36905,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36912,11 +37005,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36927,26 +37020,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36955,7 +37048,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37746,7 +37839,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43368,10 +43461,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52023,7 +52112,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62848,6 +62937,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62858,52 +62951,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64729,9 +64822,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64760,7 +64853,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64788,7 +64881,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64812,9 +64905,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65219,7 +65312,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65505,7 +65598,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65666,17 +65759,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65685,7 +65777,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65758,7 +65850,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65787,12 +65879,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65812,57 +65903,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65870,7 +65957,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65878,57 +65965,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65939,6 +66035,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66842,7 +66942,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66850,18 +66949,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66869,27 +66968,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66897,21 +66996,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66922,12 +67021,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66935,7 +67034,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66944,28 +67043,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66975,7 +67074,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66985,19 +67084,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67006,7 +67105,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67014,14 +67113,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67030,57 +67129,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67091,7 +67190,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67101,55 +67200,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "אנימציות" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67158,65 +67257,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67347,7 +67446,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/hi.po b/weblate/hi.po index 8665f8559b..ac2032662f 100644 --- a/weblate/hi.po +++ b/weblate/hi.po @@ -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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2018-10-07 19:28+0000\n" "Last-Translator: Vikram1323 \n" "Language-Team: Hindi ' _!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "साइट के लिए मुख्य दस्तावेज़ को निंन अनुभागों में व्यवस्थित किया गया है:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "सामान्य" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "सीखना शुरु" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "ट्यूटोरियल" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "विकास" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "समुदाय" @@ -975,362 +979,361 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "सामग्री बनाना" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "सामग्री बनाना" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "सामग्री बनाना" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1792,7 +1795,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2087,11 +2090,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2101,14 +2106,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2788,8 +2793,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2967,7 +2972,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4167,36 +4172,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4206,17 +4211,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4224,7 +4229,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4232,28 +4237,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4263,25 +4268,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4358,7 +4363,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4781,9 +4786,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7545,7 +7549,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8629,223 +8633,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8853,65 +8857,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8921,59 +8926,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -8983,142 +8990,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9126,7 +9124,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9134,30 +9132,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9165,7 +9162,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9173,27 +9170,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9202,7 +9199,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9211,11 +9208,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9223,7 +9220,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11316,11 +11313,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11331,67 +11335,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11401,43 +11467,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11445,7 +11511,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11453,11 +11519,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -11969,7 +12035,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14057,7 +14123,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14887,10 +14953,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14906,273 +14971,270 @@ msgid "Formatting conventions" msgstr "सामग्री बनाना" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18140,91 +18202,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25447,18 +25515,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25466,11 +25550,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25480,11 +25564,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25493,34 +25577,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25528,33 +25612,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25562,17 +25646,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25581,17 +25665,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25711,7 +25795,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26128,7 +26213,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26203,13 +26288,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26218,30 +26310,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26249,63 +26341,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26313,82 +26405,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -26985,7 +27077,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -26993,28 +27085,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27024,7 +27116,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27034,57 +27126,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27093,7 +27185,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27101,52 +27193,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27156,28 +27248,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27185,47 +27277,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27234,65 +27326,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27302,27 +27394,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27330,78 +27422,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28642,23 +28734,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28666,90 +28758,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28758,30 +28850,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28789,120 +28881,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28910,13 +29002,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28924,44 +29016,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -28969,14 +29061,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -28985,37 +29077,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29023,7 +29115,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29032,7 +29124,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29040,7 +29132,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29048,12 +29140,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29061,30 +29153,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29092,30 +29184,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29123,14 +29215,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29138,86 +29230,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29225,62 +29317,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29289,7 +29381,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29297,44 +29389,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29344,32 +29436,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29379,7 +29471,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36672,7 +36764,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36683,99 +36775,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36783,11 +36875,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36798,26 +36890,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36826,7 +36918,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37617,7 +37709,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43234,10 +43326,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51884,7 +51972,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62705,6 +62793,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62715,52 +62807,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64585,9 +64677,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64616,7 +64708,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64644,7 +64736,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64668,9 +64760,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65075,7 +65167,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65361,7 +65453,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65522,17 +65614,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65541,7 +65632,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65614,7 +65705,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65643,12 +65734,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65668,57 +65758,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65726,7 +65812,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65734,57 +65820,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65795,6 +65890,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66698,7 +66797,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66706,18 +66804,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66725,27 +66823,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66753,21 +66851,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66778,12 +66876,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66791,7 +66889,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66800,28 +66898,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66831,7 +66929,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66841,19 +66939,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66862,7 +66960,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66870,14 +66968,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66886,57 +66984,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66947,7 +67045,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -66957,55 +67055,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "सामग्री बनाना" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67014,65 +67112,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67203,7 +67301,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/hu.po b/weblate/hu.po index b8c237ae45..9b4d106cf6 100644 --- a/weblate/hu.po +++ b/weblate/hu.po @@ -12,7 +12,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: gergely87 \n" "Language-Team: Hungarian `_oldalon!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Az oldalon a fő dokumentáció a következő szakaszokra van felosztva:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Általános" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Első lépések" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Oktatóanyagok" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Fejlesztői" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Közösség" @@ -1088,363 +1092,364 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "Animáció" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animáció" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr "Részecskék" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animáció" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Első lépések" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Bővítmények" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Animáció" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Bővítmények" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1906,7 +1911,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Szerkesztő" @@ -2201,11 +2206,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2215,14 +2222,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2902,8 +2909,8 @@ msgstr "Csoportok" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3081,7 +3088,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4283,36 +4290,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4322,17 +4329,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4340,7 +4347,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4348,28 +4355,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4379,25 +4386,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4474,7 +4481,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4898,9 +4905,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7662,7 +7668,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8747,223 +8753,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licenc" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8971,65 +8977,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9039,59 +9046,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9101,142 +9110,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9244,7 +9244,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9252,30 +9252,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9283,7 +9282,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9291,28 +9290,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Animáció" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9321,7 +9320,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9330,11 +9329,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9342,7 +9341,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11437,11 +11436,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11452,67 +11458,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11522,43 +11590,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11566,7 +11634,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11574,11 +11642,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12091,7 +12159,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14178,7 +14246,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15011,10 +15079,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15029,273 +15096,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18273,91 +18337,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25587,18 +25657,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25606,11 +25692,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25620,11 +25706,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Mélység" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25633,34 +25719,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25668,33 +25754,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25702,17 +25788,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25721,17 +25807,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25851,7 +25937,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26268,7 +26355,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26343,13 +26430,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26358,30 +26452,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26389,63 +26483,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26453,82 +26547,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27125,7 +27219,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27133,28 +27227,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27164,7 +27258,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27174,57 +27268,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27233,7 +27327,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27241,52 +27335,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27296,28 +27390,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27325,47 +27419,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27374,65 +27468,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27442,27 +27536,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27470,78 +27564,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28782,23 +28876,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28806,90 +28900,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28898,30 +28992,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28929,120 +29023,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29050,13 +29144,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29064,44 +29158,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29109,14 +29203,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29125,37 +29219,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29163,7 +29257,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29172,7 +29266,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29180,7 +29274,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29188,12 +29282,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29201,30 +29295,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29232,30 +29326,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29263,14 +29357,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29278,86 +29372,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29365,62 +29459,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29429,7 +29523,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29437,44 +29531,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29484,32 +29578,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29519,7 +29613,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36813,7 +36907,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36824,99 +36918,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36924,11 +37018,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36939,26 +37033,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36967,7 +37061,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37760,7 +37854,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43381,10 +43475,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52035,7 +52125,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62864,6 +62954,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62874,52 +62968,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64747,9 +64841,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64778,7 +64872,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64806,7 +64900,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64830,9 +64924,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65237,7 +65331,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65523,7 +65617,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65684,17 +65778,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65703,7 +65796,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65776,7 +65869,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65805,12 +65898,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65830,57 +65922,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65888,7 +65976,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65896,57 +65984,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65957,6 +66054,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66860,7 +66961,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66868,18 +66968,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66887,27 +66987,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66915,21 +67015,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66940,12 +67040,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66953,7 +67053,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66962,28 +67062,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66993,7 +67093,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67003,19 +67103,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67024,7 +67124,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67032,14 +67132,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67048,57 +67148,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67109,7 +67209,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67119,55 +67219,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Animáció" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67176,65 +67276,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67365,7 +67465,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/id.po b/weblate/id.po index 4a699e493a..014e336c1c 100644 --- a/weblate/id.po +++ b/weblate/id.po @@ -17,7 +17,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:05+0000\n" "Last-Translator: Sofyan Sugianto \n" "Language-Team: Indonesian `_, atau kanal ``#godotengine-doc`` di `irc." "freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Dokumentasi utama untuk situs ini dibagi menjadi bagian-bagian berikut:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Umum" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Memulai" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutorial" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Pengembangan" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Komunitas" @@ -1182,363 +1186,362 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animasi" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animasi" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Membuat Kontent" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Pengaya" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Membuat Kontent" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -2000,7 +2003,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2295,11 +2298,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2309,14 +2314,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2996,8 +3001,8 @@ msgstr "Kelompok" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3175,7 +3180,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4375,36 +4380,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4414,17 +4419,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4432,7 +4437,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4440,28 +4445,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4471,25 +4476,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4566,7 +4571,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4989,9 +4994,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7753,7 +7757,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8838,223 +8842,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Lisensi" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9062,65 +9066,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9130,59 +9135,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9192,142 +9199,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9335,7 +9333,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9343,30 +9341,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9374,7 +9371,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9382,27 +9379,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9411,7 +9408,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9420,11 +9417,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9432,7 +9429,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11526,11 +11523,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11541,67 +11545,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11611,43 +11677,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11655,7 +11721,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11663,11 +11729,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12179,7 +12245,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14266,7 +14332,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15095,10 +15161,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15113,273 +15178,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18346,91 +18408,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25656,18 +25724,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25675,11 +25759,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25689,11 +25773,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Kedalaman" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25702,34 +25786,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25737,33 +25821,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25771,17 +25855,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25790,17 +25874,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25920,7 +26004,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26337,7 +26422,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26412,13 +26497,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26427,30 +26519,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26458,63 +26550,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26522,82 +26614,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27194,7 +27286,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27202,28 +27294,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27233,7 +27325,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27243,57 +27335,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27302,7 +27394,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27310,52 +27402,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27365,28 +27457,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27394,47 +27486,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27443,65 +27535,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27511,27 +27603,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27539,78 +27631,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28851,23 +28943,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28875,90 +28967,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28967,30 +29059,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28998,120 +29090,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29119,13 +29211,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29133,44 +29225,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29178,14 +29270,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29194,37 +29286,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29232,7 +29324,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29241,7 +29333,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29249,7 +29341,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29257,12 +29349,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29270,30 +29362,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29301,30 +29393,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29332,14 +29424,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29347,86 +29439,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29434,62 +29526,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29498,7 +29590,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29506,44 +29598,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29553,32 +29645,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29588,7 +29680,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36880,7 +36972,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36891,99 +36983,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36991,11 +37083,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -37006,26 +37098,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37034,7 +37126,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37825,7 +37917,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43439,10 +43531,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52090,7 +52178,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62917,6 +63005,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62927,52 +63019,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64798,9 +64890,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64829,7 +64921,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64857,7 +64949,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64881,9 +64973,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65288,7 +65380,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65574,7 +65666,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65735,17 +65827,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65754,7 +65845,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65827,7 +65918,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65856,12 +65947,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65881,57 +65971,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65939,7 +66025,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65947,57 +66033,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -66008,6 +66103,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66911,7 +67010,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66919,18 +67017,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66938,27 +67036,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66966,21 +67064,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66991,12 +67089,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -67004,7 +67102,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -67013,28 +67111,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67044,7 +67142,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67054,19 +67152,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67075,7 +67173,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67083,14 +67181,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67099,57 +67197,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67160,7 +67258,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67170,55 +67268,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Membuat Kontent" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67227,65 +67325,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67416,7 +67514,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/it.po b/weblate/it.po index 8bfbce21ae..e8bfb8c496 100644 --- a/weblate/it.po +++ b/weblate/it.po @@ -40,7 +40,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:05+0000\n" "Last-Translator: Stefano Merazzi \n" "Language-Team: Italian `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "La documentazione principale per il sito è organizzato nelle seguenti " "sezioni:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Informazioni Generali" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Per iniziare" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutorial" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Sviluppo" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Comunità" @@ -1321,387 +1325,418 @@ msgstr "" "sostanzialmente aggiornati, ma non sono riportati in questo documento." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Nuovi tutorial dalla versione 3.0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:19 +msgid ":ref:`doc_localization_using_gettext`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "Nuovi tutorial dalla versione 3.0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Passo passo" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`Signals `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`Exporting `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Flusso di lavoro del progetto" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "Metodi migliori:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Introduzione `" -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Cosa sono le classi Godot `" -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organizzazione della scena `" -#: ../../docs/about/docs_changelog.rst:31 +#: ../../docs/about/docs_changelog.rst:39 #, fuzzy -msgid ":ref:`Scenes versus scripts `" +msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Scene contro script `" -#: ../../docs/about/docs_changelog.rst:32 +#: ../../docs/about/docs_changelog.rst:40 #, fuzzy -msgid "" -":ref:`Autoloads versus internal nodes `" +msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Autoloads versus nodi interni `" -#: ../../docs/about/docs_changelog.rst:33 +#: ../../docs/about/docs_changelog.rst:41 #, fuzzy -msgid ":ref:`Node alternatives `" +msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Alternative ai nodi `" -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:` Interfacce di Godot `" -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Notifiche di Godot `" -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Preferenze sui dati `" -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Preferenze logiche `" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "Scripting" -#: ../../docs/about/docs_changelog.rst:42 +#: ../../docs/about/docs_changelog.rst:50 #, fuzzy -msgid ":ref:`Typed GDscript `" +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Tipizzazione forte di GDscript `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +#, fuzzy +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Luci e ombre 2D `" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Meshes 2D `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +#, fuzzy +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" ":ref:`Animazione di migliaia di pesci con MultiMesh " "`" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +#, fuzzy +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Controllare migliaia di pesci con Particles " "`" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Fisica" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Sistema di ragdoll `" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animazione" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Scheletri 2D `" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`AnimationTree `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:72 +#: ../../docs/about/docs_changelog.rst:80 #, fuzzy -msgid ":ref:`Containers `" +msgid ":ref:`doc_gui_containers`" msgstr ":ref:` Interfacce di Godot `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Viewports" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +#, fuzzy +msgid ":ref:`doc_viewport_as_texture`" msgstr "" ":ref:`Utilizzare una Viewport come una texture `" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Post-process personalizzato `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Shading" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +#: ../../docs/about/docs_changelog.rst:91 +#, fuzzy +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introduzione agli shaders: acqua 2D e 3D (7 video tutorial in inglese) " "`" -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +#: ../../docs/about/docs_changelog.rst:92 +#, fuzzy +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migrare al linguaggio di shading di Godot " "`" -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" msgstr ":ref:`Post-process avanzato `" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 #, fuzzy msgid "Your First Shader Series:" msgstr "Il tuo primo gioco" -#: ../../docs/about/docs_changelog.rst:88 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy -msgid ":ref:`What are shaders? `" +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Cosa sono le classi Godot `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:97 #, fuzzy -msgid ":ref:`Your first CanvasItem shader `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Shader CanvasItem `" -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:98 #, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" +msgstr "Il tuo primo gioco" + +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy msgid "Shading Reference:" msgstr "Riferimenti allo Shading:" -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" msgstr ":ref:`Linguaggio di shading `" -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" +msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`Shader CanvasItem `" -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Piattaforma specifica" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" +msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 #, fuzzy msgid "Multi-threading" msgstr "Multi-threading" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animazione" -#: ../../docs/about/docs_changelog.rst:118 +#: ../../docs/about/docs_changelog.rst:126 #, fuzzy -msgid ":ref:`Using MultiMesh `" +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Signals `" -#: ../../docs/about/docs_changelog.rst:119 +#: ../../docs/about/docs_changelog.rst:127 #, fuzzy -msgid ":ref:`Using servers `" +msgid ":ref:`doc_using_servers`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 #, fuzzy msgid "Miscellaneous" msgstr "Misto" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Legale" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "Compilazione" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 #, fuzzy msgid "Engine development" msgstr "Sviluppo del motore grafico" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Creazione di contenuti" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" +msgstr ":ref:`AnimationTree `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Creare un nuovo progetto" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -2283,7 +2318,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2687,14 +2722,16 @@ msgstr "" #, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "Puoi anche modificare istanze individuali. Riporta il valore di ``Bounce`` a " "0.5, poi nella scena ``Main``, seleziona una della palle istanziate e " "modifica il suo valore ``Bounce`` a ``1`` e premi \"Play\"." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2710,14 +2747,14 @@ msgstr "" "proprietá viene modificato nella scena originale. Premendo il bottone di " "annulla riporterá il valore a quello salvato nella scena originaria." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Conclusione" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3596,8 +3633,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3775,7 +3812,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4997,36 +5034,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5036,17 +5073,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5054,7 +5091,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5062,28 +5099,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5093,26 +5130,26 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 #, fuzzy msgid "Project files" msgstr "Gestore di Progetto" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -5189,7 +5226,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -5612,9 +5649,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -8376,7 +8412,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -9462,223 +9498,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licenza" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9686,65 +9722,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9754,59 +9791,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9816,142 +9855,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9959,7 +9989,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9967,30 +9997,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9998,7 +10027,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -10006,27 +10035,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -10035,7 +10064,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -10044,11 +10073,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -10056,7 +10085,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -12155,11 +12184,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -12170,67 +12206,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -12240,43 +12338,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -12284,7 +12382,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -12292,11 +12390,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12808,7 +12906,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14900,7 +14998,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15734,10 +15832,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15753,274 +15850,271 @@ msgid "Formatting conventions" msgstr "Creare contenuti" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 #, fuzzy msgid "Using spaces" msgstr "Modificare le istanze" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18995,91 +19089,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -26312,18 +26412,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -26331,11 +26447,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -26345,11 +26461,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -26358,34 +26474,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -26393,33 +26509,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -26427,17 +26543,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -26446,17 +26562,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -26576,7 +26692,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26993,7 +27110,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -27068,13 +27185,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -27083,31 +27207,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Le ragioni principali sono:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -27115,63 +27239,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -27179,82 +27303,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27852,7 +27976,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27860,28 +27984,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27891,7 +28015,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27901,57 +28025,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27960,7 +28084,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27968,52 +28092,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -28023,28 +28147,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -28052,47 +28176,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -28101,65 +28225,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -28169,27 +28293,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -28197,78 +28321,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -29512,23 +29636,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -29536,90 +29660,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -29628,30 +29752,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -29659,120 +29783,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29780,13 +29904,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29794,44 +29918,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29839,14 +29963,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29855,37 +29979,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29893,7 +30017,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29902,7 +30026,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29910,7 +30034,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29918,12 +30042,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29931,30 +30055,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29962,30 +30086,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29993,14 +30117,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -30008,86 +30132,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -30095,62 +30219,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -30159,7 +30283,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -30167,44 +30291,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -30214,32 +30338,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -30249,7 +30373,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -37543,7 +37667,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -37554,99 +37678,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -37654,11 +37778,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -37669,26 +37793,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37697,7 +37821,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -38488,7 +38612,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -44111,10 +44235,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52767,7 +52887,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -63606,6 +63726,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -63616,52 +63740,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -65491,9 +65615,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -65522,7 +65646,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -65550,7 +65674,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -65574,9 +65698,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65981,7 +66105,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -66267,7 +66391,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -66428,17 +66552,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -66447,7 +66570,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -66520,7 +66643,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -66549,12 +66672,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -66574,57 +66696,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -66632,7 +66750,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -66640,57 +66758,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -66701,6 +66828,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -67604,7 +67735,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -67612,18 +67742,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -67631,27 +67761,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -67659,21 +67789,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -67684,12 +67814,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -67697,7 +67827,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -67706,28 +67836,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67737,7 +67867,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67747,19 +67877,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67768,7 +67898,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67776,14 +67906,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67792,57 +67922,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67853,7 +67983,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67863,55 +67993,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Creare un nuovo progetto" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67920,65 +68050,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -68109,7 +68239,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/ja.po b/weblate/ja.po index cc9f53d929..3786239652 100644 --- a/weblate/ja.po +++ b/weblate/ja.po @@ -19,7 +19,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: FourmiSushi \n" "Language-Team: Japanese `_の``#godotengine-doc``チャンネルで私たちと議論し" "てください!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "このサイトの主なドキュメントは次のセクションから構成されています。" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "一般" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "入門" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "チュートリアル" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "開発" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "コミュニティ" @@ -1146,364 +1150,370 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 +msgid "New tutorials since version 3.1" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "ローカライズ" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 #, fuzzy msgid "Step-by-step" msgstr "ステップ・バイ・ステップ" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" +msgstr ":ref:`c_sharp_signals` も参照して下さい" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "アニメーション" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:50 +#, fuzzy +msgid ":ref:`doc_gdscript_static_typing`" +msgstr ":ref:`ビルトイン `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" +msgstr ":ref:`doc_ways_to_contribute` をご覧下さい。" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" +msgstr ":ref:`doc_ways_to_contribute` をご覧下さい。" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr "パーティクル" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "アニメーション" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "コンテンツの作成" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "プラグイン" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "アニメーション" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -2064,7 +2074,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "エディタ" @@ -2396,11 +2406,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2410,14 +2422,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3097,8 +3109,8 @@ msgstr "グループ" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3276,7 +3288,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4479,36 +4491,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4518,17 +4530,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4536,7 +4548,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4544,28 +4556,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4575,26 +4587,26 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 #, fuzzy msgid "Project files" msgstr "プロファイラー" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4671,7 +4683,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -5096,9 +5108,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7860,7 +7871,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8945,223 +8956,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "ライセンス" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9169,65 +9180,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9237,59 +9249,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9299,142 +9313,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9442,7 +9447,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9450,30 +9455,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9481,7 +9485,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9489,28 +9493,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "アニメーション" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9519,7 +9523,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9528,11 +9532,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9540,7 +9544,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -12000,11 +12004,18 @@ msgstr "" "実行しない限り)エディタ内で実行することが望ましい場合があります。これには、 " "``tool`` キーワードが存在し、ファイルの先頭に配置する必要があります:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "メモリ管理" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -12021,7 +12032,7 @@ msgstr "" "instance.free() を呼び出す必要があります。解放できない参照サイクルを避けるた" "めに、弱い参照を作成するための ``weakref`` 関数が提供されています。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 msgid "" "Alternatively, when not using references, the " "``is_instance_valid(instance)`` can be used to check if an object has been " @@ -12030,77 +12041,134 @@ msgstr "" "あるいは、参照を使用しない場合は、 ``is_instance_valid(instance)`` を使用して" "オブジェクトが解放されたかどうかを確認できます。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 +#, fuzzy msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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 "" "シグナルは、他のオブジェクトが一般的な方法で受信できるオブジェクトから通知" "メッセージを送信する方法です。 ``signal`` キーワードを使用して、クラスのカス" "タムシグナルを作成します。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1490 +#, fuzzy +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 "" ":ref:`class_Button` や :ref:`class_RigidBody` などのノードの組み込み信号を接" "続するのと同じ方法で、これらの信号をメソッドに接続できます。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1493 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" -"以下は1つのスクリプトでカスタム信号を作成し、そのカスタム信号を別のスクリプト" -"で :ref:`Object.connect() ` メソッドを使用してメ" -"ソッドに接続する例です:" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1514 +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:1556 +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:1559 +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:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +#, fuzzy +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 "" "GDScriptは、シグナルとメソッド間の接続に引数をバインドすることができます。シ" "グナルが発生し、接続メソッドが呼び出されると、バインドされた引数がメソッドに" "与えられます。これらのバインドされた引数は、シグナルやメソッドではなく接続に" "固有のもので、各接続には一意のバインドがあります。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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 "" -"ボタンの ``pressed`` シグナルとメソッド間の接続を作成し、ボタン・インスタンス" -"を接続にバインドする例を次に示します。ハンドラは、バインドされた引数を使用し" -"て、押されたボタン・インスタンスを出力します。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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 "" -"シグナルは、シグナルと引数をブロードキャストする :ref:`Object.emit_signal() " -"` メソッドによって生成されます。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 msgid "" -"Extending a previous example to use all the features of GDScript signals:" -msgstr "GDScriptシグナルのすべての機能を使用するために前の例を拡張します:" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "コルーチン(yield関数による)" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -12116,21 +12184,21 @@ msgstr "" "続され、関数が返す内容が戻されます。再開すると、状態オブジェクトは無効になり" "ます。次に例を示します:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "以下のように表示されます:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "次のように、yield()とresume()の間に値を渡すこともできます:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "コルーチンとシグナル" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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 " @@ -12140,7 +12208,7 @@ msgstr "" "は、オブジェクトとシグナルの2つの引数を受け付けることができます。シグナルを受" "信すると、実行が再開されます。次に例を示します:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 msgid "" "Coroutines themselves use the ``completed`` signal when they transition into " "an invalid state, for example:" @@ -12148,16 +12216,16 @@ msgstr "" "コルーチン自体は、次のように無効な状態に遷移するときに ``completed`` シグナル" "を使用します。例:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "``my_func`` は、両方のボタンを押した後でのみ実行を継続します。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "Onreadyキーワード" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -12168,7 +12236,7 @@ msgstr "" "です。シーンはアクティブなシーンツリーに入ったときにのみ設定されるので、サブ" "ノードは Node._ready() への呼び出しが行われた時にのみ取得できます。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -12180,11 +12248,11 @@ msgstr "" "までメンバー変数の初期化を遅らせるものです。 上記のコードを単一行に置き換える" "ことができます:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "Assertキーワード" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12800,7 +12868,7 @@ msgid "**NEVER**:" msgstr "**最も悪い例**:" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "命名規則" @@ -15175,7 +15243,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "例" @@ -16026,10 +16094,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -16045,273 +16112,270 @@ msgid "Formatting conventions" msgstr "コンテンツの作成" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -19286,91 +19350,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -26676,18 +26746,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -26695,11 +26781,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -26709,11 +26795,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "深度" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -26722,34 +26808,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -26757,33 +26843,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -26791,17 +26877,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -26810,17 +26896,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -26940,7 +27026,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -27357,7 +27444,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -27432,13 +27519,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -27447,30 +27541,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -27478,63 +27572,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -27542,82 +27636,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -28214,7 +28308,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -28222,28 +28316,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -28253,7 +28347,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -28263,57 +28357,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -28322,7 +28416,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -28330,52 +28424,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -28385,28 +28479,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -28414,47 +28508,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -28463,65 +28557,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -28531,27 +28625,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -28559,78 +28653,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -29871,23 +29965,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -29895,90 +29989,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -29987,30 +30081,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -30018,120 +30112,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -30139,13 +30233,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -30153,44 +30247,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -30198,14 +30292,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -30214,37 +30308,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -30252,7 +30346,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -30261,7 +30355,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -30269,7 +30363,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -30277,12 +30371,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -30290,30 +30384,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -30321,30 +30415,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -30352,14 +30446,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -30367,86 +30461,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -30454,62 +30548,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -30518,7 +30612,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -30526,44 +30620,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -30573,32 +30667,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -30608,7 +30702,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -37902,7 +37996,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -37913,99 +38007,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -38013,11 +38107,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -38028,26 +38122,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -38056,7 +38150,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -38849,7 +38943,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -44472,10 +44566,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -53127,7 +53217,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -63955,6 +64045,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -63965,52 +64059,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -65839,9 +65933,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -65870,7 +65964,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -65899,7 +65993,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -65923,9 +66017,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -66330,7 +66424,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -66616,7 +66710,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -66777,17 +66871,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -66796,7 +66889,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -66869,7 +66962,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -66898,12 +66991,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -66923,57 +67015,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -66981,7 +67069,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -66989,57 +67077,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -67050,6 +67147,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -67953,7 +68054,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -67961,18 +68061,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -67980,27 +68080,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -68008,21 +68108,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -68033,12 +68133,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -68046,7 +68146,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -68055,28 +68155,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -68086,7 +68186,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -68096,19 +68196,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -68117,7 +68217,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -68125,14 +68225,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -68141,57 +68241,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -68202,7 +68302,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -68212,55 +68312,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "アニメーション" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -68269,65 +68369,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -68458,7 +68558,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" @@ -74284,6 +74384,38 @@ msgid "" "`_" msgstr "" +#~ msgid "" +#~ "Here's an example that creates a custom signal in one script and connects " +#~ "the custom signal to a method in a separate script, using the :ref:" +#~ "`Object.connect() ` method:" +#~ msgstr "" +#~ "以下は1つのスクリプトでカスタム信号を作成し、そのカスタム信号を別のスクリ" +#~ "プトで :ref:`Object.connect() ` メソッドを使" +#~ "用してメソッドに接続する例です:" + +#~ msgid "" +#~ "Here is an example that creates a connection between a button's " +#~ "``pressed`` signal and a method, binding the button instance to the " +#~ "connection. The handler uses the bound argument to print which button " +#~ "instance was pressed." +#~ msgstr "" +#~ "ボタンの ``pressed`` シグナルとメソッド間の接続を作成し、ボタン・インスタ" +#~ "ンスを接続にバインドする例を次に示します。ハンドラは、バインドされた引数を" +#~ "使用して、押されたボタン・インスタンスを出力します。" + +#~ msgid "" +#~ "Signals are generated by the :ref:`Object.emit_signal() " +#~ "` method which broadcasts the signal and " +#~ "arguments." +#~ msgstr "" +#~ "シグナルは、シグナルと引数をブロードキャストする :ref:`Object." +#~ "emit_signal() ` メソッドによって生成され" +#~ "ます。" + +#~ msgid "" +#~ "Extending a previous example to use all the features of GDScript signals:" +#~ msgstr "GDScriptシグナルのすべての機能を使用するために前の例を拡張します:" + #~ msgid "End" #~ msgstr "終り" diff --git a/weblate/jbo.po b/weblate/jbo.po index c9aed1c2c2..b4d38e3c19 100644 --- a/weblate/jbo.po +++ b/weblate/jbo.po @@ -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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2018-11-20 10:45+0000\n" "Last-Translator: Kyle Serdutz \n" "Language-Team: Lojban `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "" @@ -956,360 +960,357 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +msgid ":ref:`doc_android_plugin`" msgstr "" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -1772,7 +1773,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2067,11 +2068,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2081,14 +2084,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2768,8 +2771,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2947,7 +2950,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4147,36 +4150,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4186,17 +4189,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4204,7 +4207,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4212,28 +4215,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4243,25 +4246,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4338,7 +4341,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4761,9 +4764,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7525,7 +7527,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8609,223 +8611,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8833,65 +8835,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8901,59 +8904,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -8963,142 +8968,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9106,7 +9102,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9114,30 +9110,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9145,7 +9140,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9153,27 +9148,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9182,7 +9177,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9191,11 +9186,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9203,7 +9198,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11296,11 +11291,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11311,67 +11313,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11381,43 +11445,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11425,7 +11489,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11433,11 +11497,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -11949,7 +12013,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14035,7 +14099,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14864,10 +14928,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14882,273 +14945,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18115,91 +18175,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25418,18 +25484,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25437,11 +25519,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25451,11 +25533,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25464,34 +25546,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25499,33 +25581,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25533,17 +25615,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25552,17 +25634,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25682,7 +25764,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26099,7 +26182,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26174,13 +26257,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26189,30 +26279,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26220,63 +26310,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26284,82 +26374,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -26956,7 +27046,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -26964,28 +27054,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -26995,7 +27085,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27005,57 +27095,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27064,7 +27154,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27072,52 +27162,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27127,28 +27217,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27156,47 +27246,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27205,65 +27295,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27273,27 +27363,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27301,78 +27391,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28612,23 +28702,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28636,90 +28726,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28728,30 +28818,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28759,120 +28849,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28880,13 +28970,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28894,44 +28984,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -28939,14 +29029,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -28955,37 +29045,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -28993,7 +29083,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29002,7 +29092,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29010,7 +29100,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29018,12 +29108,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29031,30 +29121,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29062,30 +29152,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29093,14 +29183,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29108,86 +29198,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29195,62 +29285,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29259,7 +29349,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29267,44 +29357,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29314,32 +29404,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29349,7 +29439,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36641,7 +36731,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36652,99 +36742,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36752,11 +36842,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36767,26 +36857,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36795,7 +36885,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37586,7 +37676,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43192,10 +43282,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51839,7 +51925,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62656,6 +62742,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62666,52 +62756,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64535,9 +64625,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64566,7 +64656,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64594,7 +64684,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64618,9 +64708,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65025,7 +65115,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65311,7 +65401,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65472,17 +65562,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65491,7 +65580,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65564,7 +65653,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65593,12 +65682,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65618,57 +65706,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65676,7 +65760,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65684,57 +65768,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65745,6 +65838,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66648,7 +66745,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66656,18 +66752,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66675,27 +66771,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66703,21 +66799,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66728,12 +66824,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66741,7 +66837,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66750,28 +66846,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66781,7 +66877,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66791,19 +66887,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66812,7 +66908,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66820,14 +66916,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66836,57 +66932,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66897,7 +66993,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -66907,54 +67003,54 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 msgid "Targeting Android" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -66963,65 +67059,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67152,7 +67248,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/ko.po b/weblate/ko.po index 326edacd4a..0c17b866f6 100644 --- a/weblate/ko.po +++ b/weblate/ko.po @@ -32,7 +32,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:05+0000\n" "Last-Translator: moolow \n" "Language-Team: Korean `_\\ 의 ``#godotengine-doc``\\ 에서 " "저희와 함께 논의를 할 수 있습니다!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "이 사이트의 주요 문서는 다음과 같이 구성되어 있습니다:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "일반" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "시작하기" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "튜토리얼" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "개발" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "커뮤니티" @@ -1228,372 +1232,424 @@ msgstr "" "다, 많은 튜토리얼이 업데이트되지만 이 문서에는 반영되지 않습니다." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "3.0 버전 이후의 새로운 튜토리얼" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "현지화" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "현지화" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "3.0 버전 이후의 새로운 튜토리얼" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "단계별" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`시그널 `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`내보내기 `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "프로젝트 워크플로" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +#, fuzzy +msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`안드로이드로 커스텀 빌드 `" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "모범 사례:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`소개 `" -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Godot 클래스란 무엇입니까 `" -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr ":ref:`씬 조직 `" -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`씬 vs 스크립트 `" -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" +#: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr ":ref:`오토로드 vs 내장 노드 `" -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" +#: ../../docs/about/docs_changelog.rst:41 +#, fuzzy +msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`노드 대안 `" -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Godot 인터페이스 `" -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Godot 알림 `" -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" msgstr ":ref:`데이터 환경 설정 `" -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`논리 환경 설정 `" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "스크립팅(Scripting)" -#: ../../docs/about/docs_changelog.rst:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +#, fuzzy +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`타입 GDscript `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +#, fuzzy +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`2D 빛과 그림자 `" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`2D meshes `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" -msgstr "" -":ref:`MultiMesh로 수천개의 물고기를 움직이게 하기 " -"`" +#: ../../docs/about/docs_changelog.rst:62 +#, fuzzy +msgid ":ref:`doc_animating_thousands_of_fish`" +msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +#, fuzzy +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Particle로 수천개의 물고기를 움직이게 하기 " "`" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "물리" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`래그돌 시스템 `" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" msgstr ":ref:`소프트바디 `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`2D 스켈레톤 `" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`애니메이션 트리(AnimationTree) `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`컨테이너 `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "뷰포트" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +#, fuzzy +msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`뷰포트를 텍스쳐로 사용하기 `" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`커스텀 포스트 프로세싱 `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "셰이딩" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +#: ../../docs/about/docs_changelog.rst:91 +#, fuzzy +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`셰이더 소개: 2D와 3D 물 (7개 비디오 튜토리얼) " "`" -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +#: ../../docs/about/docs_changelog.rst:92 +#, fuzzy +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Godot의 셰이딩 언어로 이동하기 " "`" -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" msgstr ":ref:`고급 포스트 프로세싱 `" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "당신의 첫 셰이더 시리즈:" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" +#: ../../docs/about/docs_changelog.rst:96 +#, fuzzy +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`셰이더란 무엇일까? `" -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" +#: ../../docs/about/docs_changelog.rst:97 +#, fuzzy +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`안드로이드로 커스텀 빌드 `" -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" +#: ../../docs/about/docs_changelog.rst:98 +#, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`당신의 첫 Spatial 셰이더 `" -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" +#: ../../docs/about/docs_changelog.rst:99 +#, fuzzy +msgid ":ref:`doc_your_second_spatial_shader`" msgstr ":ref:`당신의 첫 Spatial 셰이더: 파트 2 `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:106 msgid "Shading Reference:" msgstr "셰이딩 참조:" -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" msgstr ":ref:`셰이더 `" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" msgstr ":ref:`셰이딩 언어 `" -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Spatial 셰이더 `" -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`CanvasItem 셰이더 `" -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Particle 셰이더 `" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:111 +#, fuzzy +msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`VR 초심자 튜토리얼 `" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "플랫폼 특화" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`웹 내보내기 HTML 페이지를 커스터마이징하기 " "`" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "멀티 스레딩(Multi-threading)" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +#, fuzzy +msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`스레드 안전 API `" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "최적화" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +#, fuzzy +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`MultiMesh 사용하기 `" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +#, fuzzy +msgid ":ref:`doc_using_servers`" msgstr ":ref:`서버 사용하기 `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "기타" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +#, fuzzy +msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`불안정함과 끊김 현상 고치기 `" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +#, fuzzy +msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`에디터에서 코드 실행하기 `" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +#, fuzzy +msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`수동으로 씬 바꾸기 `" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +#, fuzzy +msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`GLES2와 GLES3 간의 차이 `" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "법적" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +#, fuzzy +msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`라이선스 준수하기 `" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "컴파일링(Compiling)" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +#, fuzzy +msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`크기에 맞게 빌드 최적화하기 `" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +#, fuzzy +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`스크립트 암호화 키로 컴파일하기 " "`" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "엔진 개발" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +#, fuzzy +msgid ":ref:`doc_binding_to_external_libraries`" msgstr ":ref:`외부 라이브러리에 봉제하기 `" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "콘텐츠 만들기" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" msgstr ":ref:`나무 만들기 `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "플러그인" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" msgstr ":ref:`메인 화면 플러그인 만들기`" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +#, fuzzy +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Spatial 기즈모 플러그인 `" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" msgstr ":ref:`안드로이드 플러그인 만들기 `" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -2147,7 +2203,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "에디터" @@ -2523,16 +2579,19 @@ msgstr "" "에 영향을 줍니다." #: ../../docs/getting_started/step_by_step/instancing.rst:107 +#, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "각각의 인스턴스들도 조절할 수 있습니다. Bounce 값을 ``0``\\ 으로 돌려 놓고 " "``Main`` 씬으로 돌아간 다음, 인스턴스된 공 하나를 선택합니다. 공의 " "``Bounce`` 값을 ``1``\\ 로 맞추고 \"재생\"을 누르세요." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2546,14 +2605,14 @@ msgstr "" "이 기존의 씬에서 수정되더라도, 커스텀 값은 유지됩니다. 새로고침 버튼을 누르" "면 저장된 씬의 값으로 속성을 복원시킬 수 있습니다." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "결론" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3428,11 +3487,12 @@ msgid "Groups" msgstr "그룹" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:90 +#, fuzzy msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Godot에서 그룹은 다른 소프트웨어에서 접했을 태그와 비슷합니다. 노드는 많은 그" "룹에 원하는 만큼 추가될 수 있습니다. 거대한 씬을 조직하는데 유용한 기능입니" @@ -3669,7 +3729,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "오직 GDScript만 각 이름이 있는 스크립트에 전역 변수를 만듭니다." #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5238,7 +5298,7 @@ msgstr "" "시작하려면 ``Mob.gd``\\ 에 새 함수를 추가합니다. ``queue_free()``\\ 는 현재 " "프레임이 끝나는 순간 현재 노드를 제거합니다." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 msgid "" "Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` " "function, at the end." @@ -5246,7 +5306,7 @@ msgstr "" "그런 다음 ``Main.gd``\\ 에서 ``_on_MobTimer_timeout()``\\ 의 끝에 새로운 줄" "을 추가합니다." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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 " @@ -5256,11 +5316,11 @@ msgstr "" "``_on_start_game()`` 함수가 실행하여 방출하는 ``start_game`` 시그널에 반응합" "니다." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "마무리 작업" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -5270,12 +5330,12 @@ msgstr "" "을 향상시킬 \"주스\"를 추가하는 것입니다. 독창적인 아이디어로 자유롭게 게임 " "플레이를 확장시켜보세요." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "배경(Background)" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5290,7 +5350,7 @@ msgstr "" "``ColorRect`` 는 오직 하나의 속성만 가지고 있습니다: ``Color`` 입니다. 원하" "는 색깔을 고르고 ``ColorRect`` 의 크기를 조절해 화면을 덮도록 만듭시다." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 msgid "" "You could also add a background image, if you have one, by using a " "``Sprite`` node." @@ -5298,11 +5358,11 @@ msgstr "" "또한 배경 이미지를 추가할 수도 있는데, 이미지가 있다면, ``Sprite`` 노드를 사" "용하면 됩니다." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "음향 효과(Sound effects)" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5314,7 +5374,7 @@ msgstr "" "Loop.ogg\"는 배경 음악으로, \"gameover.wav\"는 플레이어가 죽었을 때 쓰면 됩니" "다." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5326,7 +5386,7 @@ msgstr "" "이름 지으세요. 각각에서, ``Stream`` 속성을 클릭하시고 \"Load\"를 선택해서 이" "름에 맞는 오디오 파일을 선택하세요." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5334,16 +5394,16 @@ msgstr "" "음악을 실행시키려면, ``new_game()`` 함수에 ``$Music.play()`` 를 추가하고 " "``game_over()`` 함수에 ``$Music.stop()`` 을 추가하세요." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" "마지막으로, ``game_over()`` 함수에 ``$DeathSound.play()`` 를 추가하세요." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "키보드 단축키" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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 " @@ -5353,7 +5413,7 @@ msgstr "" "하는 게 편리할 것입니다. 이렇게 하는 방법들 중 하나로 ``Button`` 노드의 " "\"Shortcut\" 속성을 사용하는 것이 있습니다." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5368,7 +5428,7 @@ msgstr "" "\"InputEvent\"을 클릭합니다. 마지막으로 _Action_ 속성에서, 이름을 \"ui_select" "\"로 적습니다. 이것은 스페이스바로 지정된 기본 입력 이벤트입니다." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." @@ -5376,19 +5436,19 @@ msgstr "" "이제 시작 버튼이 나타날 때, 버튼을 클릭하거나 스페이스바를 눌러서 게임을 시작" "할 수 있습니다." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "프로젝트 파일" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "당신은 여기서 이 프로젝트의 완성 버전을 확인하실 수 있습니다:" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "https://github.com/kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -5491,7 +5551,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "템플릿 내보내기" @@ -6049,11 +6109,11 @@ msgstr "" "들은, 참여자들에 의해 기초부터 개발되었습니다." #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 +#, fuzzy msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" "누구든지 프로젝트에 필요한 도구들을 연결할 수 있습니다 — 다만 그것들이 엔진" "과 함께 제공되지 않습니다. 이것들은 아마 NViDia PhysX나 구글 애드몹, 혹은 " @@ -9751,7 +9811,7 @@ msgstr ":download:`robisplash_assets.zip `." #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -11164,65 +11224,72 @@ msgstr "" "이 가이드는 유니티 사용자의 관점에서 Godot 엔진의 개요를 제공합니다, 그리고 " "존재하는 유니티 경험을 Godot라는 세상에 옮기도록 돕는 것에 중점을 둡니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "차이점" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "유니티(Unity)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot(Godot)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "라이선스" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "수익 상한과 사용 제한이 있는 독점적이고 폐쇄적인 무료 라이선스" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "MIT 라이선스로, 어떤 제한 없이 무료이고 완전한 오픈 소스" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "OS (에디터)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "윈도우, macOS, 리눅스 (비공식이고 지원되지 않음)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "윈도우, macOS, X11 (리눅스, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "OS (내보내기)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**데스크톱:** 윈도우, macOS, 리눅스" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**모바일:** 안드로이드, iOS, 윈도우 폰, 타이젠(Tizen)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "**웹:** WebAssembly이나 asm.js" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "**콘솔:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" @@ -11230,43 +11297,43 @@ msgstr "" "**VR:** 오큘러스 리프트, SteamVR, 구글 카드보드, 플레이스테이션 VR, Gear VR, " "HoloLens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "**TV:** 안드로이드 TV, 삼성 스마트 TV, tvOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "**데스크톱:** 윈도우, macOS, X11" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "**모바일:** 안드로이드, iOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "**웹:** WebAssembly" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "**콘솔:** :ref:`doc_consoles` 을 확인하세요" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "**VR:** 오큘러스 리프트, SteamVR" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "씬 시스템" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "컴포넌트/씬(GameObject > Component)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "프리펩" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" @@ -11274,78 +11341,74 @@ msgstr "" ":ref:`Scene tree and nodes `, 씬을 중첩하거나 다른 씬" "을 상속할 수 있습니다" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "타사 도구" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "비주얼 스튜디오 혹은 VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr ":ref:`External editors are possible `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr ":ref:`Android SDK for Android export `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" -msgstr "킬러 기능" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +#, fuzzy +msgid "Notable advantages" +msgstr "**이점:**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "거대한 커뮤니티" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "넓은 에셋 스토어" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "씬 시스템" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr ":ref:`Animation Pipeline `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr ":ref:`Easy to write Shaders `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "기기에서 디버그" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "에디터" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 +#, fuzzy msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" "Godot 엔진은 당신이 게임을 만들기 위한 풍부한 기능을 가진 에디터를 제공합니" "다. 아래의 그림은 두 에디터 간 공통 기능을 표시하는 색칠된 사각형을 보여줍니" "다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" -"Godot 에디터는 당신이 원하는 씬 에디터 옆에 각 패널을 고정할 수 있습니다." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 +#, fuzzy msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" "두 에디터가 비슷해 보이지만, 외양 아래에 많은 차이가 있습니다. 둘 다 파일 시" "스템을 사용해서 프로젝트를 조직할 수 있지만, Godot의 접근은 하나의 구성 파" @@ -11353,25 +11416,26 @@ msgstr "" "이 모든 것이 Godot가 Git, Subversion, Mercurial와 같은 버전 관리 시스템에 훨" "씬 더 친숙한 데 기여합니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 +#, fuzzy msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" "Godot의 씬 패널은 유니티의 계층 패널과 비슷하지만,각 노드는 특정 기능을 갖고 " "있기 때문에, Godot에서 사용하는 접근은 더 시작적으로 묘사됩니다. 즉, 특정 씬" "이 한눈에 무엇을 하는지 더 쉽게 이해할 수 있습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 +#, fuzzy msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" "Godot의 인스펙터는 더 미니멀리스트하고 속성 만을 보여주기 위해 설계되었습니" "다. 덕분에, 객체는 언어 API에서 기능성을 숨길 필요 없이 훨씬 더 넓은 유용한 " @@ -11379,29 +11443,31 @@ msgstr "" "도 애니메이트 할 수 있기 때문에, 색상이나 텍스쳐, 열거, 혹은 심지어 리소스 링" "크를 실시간으로 변경하는 것이 코드 없이 가능합니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 +#, fuzzy msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" "마지막으로, 화면 위의 툴바는 프로젝트 재생을 다루는 의미 상 비슷해 보입니다. " "하지만 Godot의 프로젝트는 편집기 내부에서 실행되지 않고, 분리된 창에서 실행됩" "니다 (하지만 디버거 창에서 트리와 객체를 계속 탐구할 수 있습니다)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 +#, fuzzy msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" "이 접근은 실행 중인 게임을 다른 각도롤 볼 수 없다는 단점이 있습니다 (이 기능" "을 향후 지원할지도 모르고 실행 중인 게임에 충돌 기즈모를 보여주는 것이 이미 " "가능합니다), 하지만 그 대가로 몇 가지 이점을 갖습니다:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." @@ -11409,7 +11475,7 @@ msgstr "" "프로젝트를 실행하고 종료하는 것이 빠릅니다 (유니티는 저장하고, 프로젝트를 실" "행하고, 프로젝트를 종료하고, 그리고 이전 상태를 다시 불러와야 합니다)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -11420,47 +11486,52 @@ msgstr "" "기화 할 필요도 없이) 사라지지 않으니 훨씬 더 유용합니다. 이것으로 플레이 도" "중 레벨을 만드는 등의 환상적인 워크플로가 가능합니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "게임이 별도의 프로세스에서 실행되기 때문에 에디터는 더 안정적입니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 +#, fuzzy msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" "마지막으로, 상단 툴바는 원격 디버깅을 위한 메뉴가 있습니다. 이 설정은 기기에 " "배포하기 쉽도록 만듭니다 (핸드폰, 태블릿, 혹은 HTML5를 통한 브라우저를 연" "결), 그리고 게임을 내보낸 후 디버그/실시간 편집을 거기서 하도록 만듭니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "씬 시스템" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 +#, fuzzy msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" "유니티와 Godot와의 가장 중요한 차이점이자, Godot 사용자들이 가장 좋아하는 기" "능입니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 +#, fuzzy msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" "유니티의 씬 시스템은 필요한 씬에 모든 에셋을 포함하고 구성 요소와 스크립트를 " "설정함으로써 그들을 연결하도록 구성되어 있습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 +#, fuzzy msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" "Godot의 씬 시스템은 다릅니다: 사실 노드로 이루어진 트리를 구성하고 있습니다. " "각 노드는 용도를 지니고 있습니다: 스프라이트, 메시, 빛 등. 기본적으로 유니티" @@ -11468,7 +11539,7 @@ msgstr "" "다, 그리고 그 자식들을 각기 다른 하위 씬으로 만들 수 있습니다. 즉, 서로 다른 " "파일에 저장된 여러 씬으로 전체 씬을 작업할 수 있습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" @@ -11476,23 +11547,23 @@ msgstr "" "예를 들어, 플랫포머 레벨을 생각해보자. 당신은 여러 요소들을 가지고 작업할 것" "입니다:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "벽돌" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "동전" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "플레이어" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "적" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -11507,54 +11578,63 @@ msgstr "" "를 추가할 것입니다: 예를 들어 모든 요소에 BoxCollider2D를 추가해서 씬의 모든 " "요소가 충돌할 수 있도록 합니다. 이 원리가 Godot에서는 다릅니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 +#, fuzzy msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." msgstr "" "Godot에서, 전체 씬을 3개의, 더 작은 씬으로 나누고, 그들을 메인 씬에 인스턴스 " "합니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#, fuzzy +msgid "**A scene for the Player alone.**" msgstr "**먼저, 플레이어만 있는 씬입니다.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#: ../../docs/getting_started/editor/unity_to_godot.rst:115 +#, fuzzy msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" "플레이어를 다른 레벨에도 재 사용 가능한 요소라고 생각해보세요. 특히 하나의 노" "드로 구성됩니다: 다양한 애니메이션을 구성하기 위한 스프라이트 텍스쳐를 가진 " "AnimatedSprite 노드 (예를 들면, 걷는 애니메이션)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#, fuzzy +msgid "**A scene for the Enemy.**" msgstr "**두 번째, 적을 위한 씬입니다.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 +#, fuzzy msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" "역시, 적은 다른 레벨에서 재 사용 가능합니다. Player 노드와 거의 똑같습니다 - " "유일한 차이는 스크립트 입니다 (주로 AI를 다룹니다) 그리고 AnimatedSprite가 사" "용되는 스프라이트 텍스쳐입니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +#, fuzzy +msgid "**A Level scene.**" msgstr "**마지막으로, 레벨 씬입니다.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 +#, fuzzy msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" "이것은 (플랫폼을 위한)블럭, (플레이어가 집을)동전 그리고 이전의 Enemy 씬의 일" "정한 수의 인스턴스로 구성되어 있습니다. 이들은 다른, 분리된 적으로, 행동과 양" @@ -11562,10 +11642,11 @@ msgstr "" "트리의 노드로 취급됩니다. 물론, 각 Enemy 노드 마다 다른 속성을 설정할 수 있습" "니다 (예를 들어, 색상을 바꾸는 것)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 +#, fuzzy msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " @@ -11577,7 +11658,7 @@ msgstr "" "2D 관련 노드의 루트 타입인) \"Node2D\", (모든 3D 관련 노드의 루트 타입인) " "\"Spatial\", (모든 GUI 관련 노드의 루트 타입인) \"Control\"이 됩니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -11592,34 +11673,36 @@ msgstr "" "법에 따른 다양한 충돌 타입 노드가 있습니다 (:ref:`물리 소개 " "`\\ 를 참고하세요)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#, fuzzy msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" "문제: 이 시스템의 장점은 무엇일까요? 이 시스템이 잠재적으로 씬 트리의 깊이를 " "증가시키지 않을까요? 게다가, 유니티는 비어있는 GameObjects에 그들을 넣어서 " "GameObjects를 조직할 수 있습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 +#, fuzzy msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" "먼저, 이 시스템은 잘 알려진 객체 기반 어형 변화표와 근접합니다: Godot는 분명" "하지 않은 \"Game Objects\"인 여러 노드들을 제공합니다, 하지만 그들은 자식에" "게 자신의 능력을 제공합니다: 이것이 상속입니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 +#, fuzzy msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" "두 번째로, 씬의 하위 트리를 추출하여 고유의 씬을 만들 수 있습니다, 이걸로 두 " "번째와 세 번째 문제에 답할 수 있습니다: 비록 씬 트리가 너무 깊어지더라도, 더 " @@ -11628,76 +11711,67 @@ msgstr "" "빈 GameObject에 많은 노드를 넣는 것으로는 시각적인 조직과는 별개로, 이와 같" "은 가능성을 제공하진 못합니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" -"기억해야 할 가장 중요한 개념들 입니다: \"노드\", \"부모 노드\" 그리고 \"자식 " -"노드\"." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "프로젝트 조직" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -"우리는 이전에 프로젝트 구조를 설정하는 완벽한 해결책이 없다는 것을 인지하였습" -"니다. 어떤 해결책이든 유니티와 Godot를 위해 작동할 것이기에, 이 점은 덜 중요" -"합니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 +#, fuzzy msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" "하지만, 우리는 종종 유니티 프로젝트를 위한 공통 구조를 발견합니다, 하나의 " "Assets 폴더가 루트 디렉토리로 하여 타입에 맞는 다양한 폴더를 가지고 있습니" "다: Audio, Graphics, Models, Materials, Scripts, Scenes 등." -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 +#, fuzzy msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" "앞에서 설명한 것처럼, Godot 씬 시스템은 씬을 더 작은 씬으로 분리합니다. 각 씬" "과 하위 씬은 사실 프로젝트에서 하나의 씬 파일이기 때문에, 우리는 프로젝트를 " "약간 다르게 구성하기를 추천합니다. 이 위키는 이것을 위한 페이지를 제공합니" "다: :ref:`doc_project_organization`." -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "프리펩은 어디갔나요?" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 +#, fuzzy msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" "유니티가 제공하는 프리펩의 개념은 씬의 '템플릿' 요소입니다. 그것은 씬에 존재" "하는 재 사용이 가능하며 씬에 존재하는 프리펩의 각 인스턴스는 주체성이 있지" "만, 이 모두는 프리펩에 의해 정의된 같은 속성을 지닙니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 +#, fuzzy msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" "Godot는 그러한 프리펩을 제공하진 않지만, 씬 시스템 덕분에 그 기능이 있습니" "다: 우리가 씬 시스템이 트리처럼 조직된 것을 보셨습니다. Godot는 씬의 하위 트" @@ -11705,16 +11779,17 @@ msgstr "" "는 만큼 인스턴스 될 수 있습니다. 이 새로운 씬에 준 변화는 모든 인스턴스에 적" "용될 것입니다. 하지만 그 변화가 '템플릿' 씬에 영향을 주지는 않을 것입니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 +#, fuzzy msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" "정확하게 말하면, 당신은 인스펙터 패널에서 인스턴스의 매개 변수를 수정할 수 있" "습니다. 하지만, 비록 당신이 씬 트리에서 인스턴스를 우클릭하고 \"자식노드 편" @@ -11724,48 +11799,50 @@ msgstr "" "릿' 씬의 모든 인스턴스에 새 자식을 추가하려면, '템플릿' 씬에 새 자식을 추가해" "야 합니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "어휘 일치" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "GameObject -> 노드" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "컴포넌트 추가 -> 상속" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" -msgstr "프리펩 -> 외부화된 분기" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "스크립팅: GDScript, C# and Visual Script" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "디자인" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#, fuzzy msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" "이미 알고 계시겠지만, Unity는 C#을 지원합니다. C#은 Visual Studio 및 정적 타" "입과 같은 다른 기능과의 통합을 통해 이익을 얻습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 +#, fuzzy msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" "Godot는 독자적인 스크립트 언어를 제공합니다, :ref:`GDScript `" "\\ 와 :ref:`Visual Script `, 그리고 :ref:" @@ -11775,7 +11852,7 @@ msgstr "" "는 Godot API와 밀접하고 배우기 쉽습니다: 숙련된 프로그래머든지 막 개발을 시작" "한 사람이든지 말입니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -11786,7 +11863,7 @@ msgstr "" "는 GameObject에 행동을 추가합니다: 예를 들어 스크립트를 붙여서 플레이어의 조" "작이나 특정 게임을 조작하는 다른 것을 넣을 수 있습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -11798,7 +11875,7 @@ msgstr "" "에 더 많은 스크립트를 붙이고 싶다면, 씬이랑 원하는 것을 얻기 위해, 두 가지 방" "안을 고려하셔야 합니다:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." @@ -11806,7 +11883,7 @@ msgstr "" "대상 노드와 현재 부모 노드 사이에 새 노드를 추가 한 다음, 이 노드에 스크립트" "를 추가합니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." @@ -11814,20 +11891,20 @@ msgstr "" "또는, 대상 노드를 여러 자식 노드로 분할하고 각각마다 하나의 스크립트를 붙일 " "수 있습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#, fuzzy msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" "보시다시피 씬 트리를 뒤죽박죽으로 만드는 것은 쉽습니다. 그렇기 때문에 실제 상" "황을 반영하고 복잡한 씬을 여러 개의 작은 분기로 나누는 것이 중요합니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "연결: 그룹과 시그널" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -11839,7 +11916,7 @@ msgstr "" "룹에 있는 모든 노드에서 함수를 호출할 수도 있습니다. 자세한 것은 :ref:`스크립" "팅 문서 `\\ 를 참고하세요." -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -11851,15 +11928,15 @@ msgstr "" "있습니다. 자세한 설명은 :ref:`시그널 문서 `\\ 를 참고하" "세요." -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "스크립트 직렬화" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "유니티는 두 가지 방법으로 스크립트 직렬화를 다룰 수 있습니다:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." @@ -11867,7 +11944,7 @@ msgstr "" "Implicit(암시적): 한 클래스의 모든 퍼블릭 필드가 직렬화 할 수 있는 타입이면 " "(``Dictionary``\\ 는 직렬화 할 수 없음) 자동으로 직렬화 됩니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." @@ -11875,7 +11952,7 @@ msgstr "" "Explicit(명시적): 비 퍼블릭 필드를 ``[SerializeField]`` 속성을 사용하여 직렬" "화 되도록 할 수 있습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -11890,7 +11967,7 @@ msgstr "" "니다. 자세한 설명은 :ref:`내보내기 문서 `\\ 를 참고하세" "요." -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -11905,11 +11982,11 @@ msgstr "" "객체를 만들 수 있게 됩니다. 리소스에 관한 더 많은 정보는 :ref:`여기서 " "` 볼 수 있습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "C++로 Godot 사용하기" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -11920,7 +11997,7 @@ msgstr "" "재 유니티에서는 불가능합니다. 예를 들어 Godot 엔진의 에디터를 Godot API를 사" "용하는 C++로 작성된 \"게임\"으로 간주할 수 있습니다." -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -14386,11 +14463,18 @@ msgstr "" "행하지 않거나 수동으로 실행하려 하지 않는 한). 이를 위해 ``tool`` 키워드가 존" "재하며 파일의 맨 위에 배치해야 합니다:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "메모리 관리" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -14407,7 +14491,7 @@ msgstr "" "해야만 합니다. 해제할 수 없는 참조 사이클을 피하기 위해, 약한 참조를 생성하" "는 ``weakref`` 함수가 제공됩니다." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 msgid "" "Alternatively, when not using references, the " "``is_instance_valid(instance)`` can be used to check if an object has been " @@ -14416,77 +14500,133 @@ msgstr "" "또는, 참조를 사용하지 않을 때, ``is_instance_valid(instance)`` 가 객체가 해제" "되었는 지를 확인하는데 사용될 수 있습니다." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 +#, fuzzy msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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 "" "시그널은 한 객체에서 다른 객체로 들을 수 있는 신호 메시지를 전달하는 일반적" "인 방식입니다. ``signal`` 키워드로 클래스를 위한 커스텀 시그널을 만드세요." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1490 +#, fuzzy +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 "" "내장된 노드, :ref:`class_Button`\\ 이나 :ref:`class_RigidBody`\\ 의 시그널과 " "같은 방식으로 이 시그널도 연결할 수 있습니다." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1493 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" -"다음은 :ref:`Object.connect() ` 메서드를 이용해 " -"한 스크립트에 커스텀 시그널을 만들고 이를 다른 스크립트에 연결하는 예시입니" -"다:" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1514 +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:1556 +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:1559 +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:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +#, fuzzy +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 "" "GDScript는 인수를 신호와 메서드 사이의 연결에 바인딩 할 수 있습니다. 시그널" "이 보내질 때, 연결된 메소드를 호출하면 바인딩 된 인자가 메소드에 주어집니다. " "이러한 바운드 인수는 신호 또는 메서드가 아닌 연결에만 적용되므로 각 연결마다 " "고유 한 바인딩이 있음을 의미합니다." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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 "" -"다음은 버튼을 연결에 묶어서, 버튼의 ``pressed`` 시그널과 메서드를 연결하는 예" -"제입니다. handler는 눌린 버튼 인스턴스와 묶인 인수를 프린트 합니다." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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 "" -"시그널은 시그널과 인수를 뿌리는 :ref:`Object.emit_signal() " -"` 메서드로 생성됩니다." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" msgstr "" -"다음은 GDScript 시그널의 모든 기능을 사용하기 위해 이전 예제에서 확장된 것입" -"니다:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "yield를 가진 코루틴(Coroutine)" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -14501,21 +14641,21 @@ msgstr "" "과 ``resume``\\ 을 호출하면 실행이 계속되고 함수가 반환하는 값을 반환합니다. " "다시 시작하면 상태 객체는 무효화됩니다. 여기 예제가 있습니다:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "이렇게 프린트 될 것입니다:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "yield()와 resume() 사이에 값을 보내는 것도 가능합니다, 예를 들어:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "코루틴 & 시그널" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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 " @@ -14525,7 +14665,7 @@ msgstr "" "\\ 는 두 개의 매개 변수를 받아 들일 수 있는데, 객체와 시그널 입니다. 시그널" "을 받게되면, 실행이 다시 시작됩니다. 여기 몇 가지 예제가 있습니다:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 msgid "" "Coroutines themselves use the ``completed`` signal when they transition into " "an invalid state, for example:" @@ -14533,16 +14673,16 @@ msgstr "" "코루틴은 무효 상태로 전환 될 때, ``completed`` 시그널을 사용합니다, 예를 들" "어:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "``my_func``\\ 은 오직 두 버튼이 한번에 눌릴 때 계속 실행됩니다." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "Onready 키워드" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -14553,7 +14693,7 @@ msgstr "" "다. 활성 씬 트리에 들어갈 때 씬만 구성되므로, 하위 노드는 오직 Node._ready()" "에 대한 호출이 있을 때만 얻을 수 있습니다." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -14564,11 +14704,11 @@ msgstr "" "``onready`` 라는, _ready가 호출될 때까지 멤버 변수의 초기화를 지연하는 키워드" "를 갖고 있습니다. 이걸로 위의 코드를 한 줄로 바꿀 수 있습니다:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "Assert 키워드" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -15181,7 +15321,7 @@ msgid "**NEVER**:" msgstr "**절대 금지**:" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "명명 규칙" @@ -17791,7 +17931,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "예제" @@ -18778,11 +18918,11 @@ msgid "Language specification" msgstr "언어 사양" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 +#, fuzzy msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" "현재로썬 Godot는 엔진과 예제 소스 코드로 C# 6.0 버전을 사용합니다. 그러므로 " "신규 버전으로 옮기기 전까지는 C# 7.0이나 그 이상에서만 사용할 수 있는 언어 기" @@ -18803,36 +18943,43 @@ msgid "Formatting conventions" msgstr "형식 규칙" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +#, fuzzy +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" "새로운 파일을 생성하면, 줄 바꿈을 위해 라인피드 (*LF*) 문자를 사용하는 것을 " "염두하세요, *CRLF*\\ 이나 *CR*\\ 이 아닙니다." #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 +#, fuzzy msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" "바이트 순서 표식 (`BOM `_)없" "이 UTF-8 인코딩을 사용합니다." #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 +#, fuzzy msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" "들여 쓰기를 위해 탭 대신 4개의 스페이스를 사용합니다 ('소프트 탭'\\ 이라고 " "함)." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "줄 바꿈 및 공백 줄" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 +#, fuzzy msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" @@ -18841,39 +18988,40 @@ msgstr "" "wiki/Indentation_style#Allman_style>`_\\ 에 따라 제어문과 관련된 중괄호를 다" "음 줄에 놓으면서, 같은 높이의 들여쓰기를 하기를 권장합니다:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "그러나, 중괄호 안에 줄 바꿈을 생략할 수 있습니다:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "간단한 속성 접근자를 위해." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "간단한 객체, 배열, 혹은 컬렉션 이니셜라이저를 위해." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "추상적 auto 속성, 인덱서, 혹은 이벤트 선언을 위해." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "다음 경우에 공백 줄을 넣습니다:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#, fuzzy +msgid "After a list of ``using`` statements." msgstr "명령문 목록을 *사용한* 후." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 msgid "Between method, properties, and inner type declarations." msgstr "메서드, 속성, 그리고 내부 타입 선언 사이." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " @@ -18882,154 +19030,157 @@ msgstr "" "공백과 상수 선언은 관련성에 따라 함께 묶을 수 있습니다. 이 경우, 가독성을 위" "해, 묶음 사이에 공백 줄을 넣는 것을 고려해볼 수 있습니다." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "다음 경우에 공백 줄을 삽입하는 것을 피하세요:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "``{``, 괄호 열기 이후." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "``}``, 괄호 닫기 이전." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#, fuzzy +msgid "After a comment block or a single-line comment." msgstr "커맨드 블록이나, 한 줄 짜리 주석 이후." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "다른 공백 줄과 인접한 경우." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "공백 사용하기" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "다음 경우에 공백을 넣습니다:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "이진 및 삼항 연산자 주변." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#, fuzzy msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" "괄호 열기와 *if*, *for*, *foreach*, *catch*, *while*, *lock* 혹은 *using* 키" "워드 사이." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "한 줄 접근자 블록 전이나 앞." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "한 줄 접근자 블록에서 접근자들 사이." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "반점 이후." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#, fuzzy +msgid "After a semicolon in a ``for`` statement." msgstr "*for* 명령문에서 세미콜론 이후." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#, fuzzy +msgid "After a colon in a single line ``case`` statement." msgstr "한 줄 *case* 명령문에서 콜론 이후." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "타입 선언에서 콜론 주변." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "Lambda arrow(람다 화살표) 주변." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 +#, fuzzy msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "한 줄 주석 상징 ('//')이후, 그리고 문장의 끝에서 쓰일 때는 이전." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "공백을 사용하지 마세요:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "타입 캐스트 괄호 이후." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "한 줄 이니셜라이저 중괄호 안." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "다음 예제는 위에서 언급한 규칙에 따라 적절한 공백의 사용을 보여줍니다:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 +#, fuzzy msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" "private 영역을 제외한 모든 네임스페이스, 즉 타입 이름과 멤버 레벨 식별자 " "(예: 메서드, 속성, 상수, 이벤트)에 *PascalCase*\\ 를 사용합니다:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 +#, fuzzy msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" msgstr "" "모든 다른 식별자 (예: 지역 변수, 메서드 인수)에 *camelCase*\\ 를 사용하고, " "private 영역의 접두사로 밑줄('_')을 사용합니다 (하지만 위에서 설명했듯이, 메" "서드나 속성은 아닙니다):" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +#, fuzzy msgid "" "There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" "두 글자로 구성된 약자는 예외입니다, *'UI'*\\ 같은 것으로, Pascal case가 쓰이" "는 곳이면 대문자로 써야하고, 그렇지 않다면 소문자를 써야합니다." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#, fuzzy msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" "*'id'*\\ 는 약자가 **아닙니다**, 따라서 일반적인 식별자로 취급해야 합니다:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 +#, fuzzy msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" "일반적으로 타입 이름을 식별자의 접두사로 사용하는 것은 바람직하지 않습니다, " "예를 들면 *'string strText'*\\ 나 *'float fPower'*\\ 가 있죠. 하지만 예외로 " "인터페이스에서, **반드시** 이름의 접두어 대문자 *'I'*\\ 를 갖는 것이 있습니" "다, *'IInventoryHolder'*\\ 나 *'IDamageable'*\\ 이 있죠." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." @@ -19037,68 +19188,76 @@ msgstr "" "마지막으로 서술적인 이름을 고르는 것은 생각하되 너무 축약해서 가독성에 해를 " "끼치게 해서는 안됩니다." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#, fuzzy msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" "예를 들어, 근처의 적을 찾고 무기로 공격하는 코드를 짜고 싶다면 이렇게 하는 " "게 좋습니다" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" msgstr "이것보다는 말이죠," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "암시적 형식 지역 변수" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 +#, fuzzy msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" "지역 변수의 선언을 위해 암시적 형식 (*'var'*)를 사용하는 것을 생각해보세요, " "하지만 할당의 오른쪽에서 **타입이 분명할 때만** 해야합니다:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "기타 고려 사항" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "명시적 액세스 모디파이어를 사용하세요." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "비공개 영역 대신 속성을 사용하세요." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 +#, fuzzy msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" "이 순서로 모디파이어를 사용하세요: *'public/protected/private/internal " "virtual/override/abstract/new static readonly'*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#, fuzzy msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" "꼭 필요하지 않다면 완전한 이름이나 멤버에게 *'this.'* 접두사를 사용하지 마세" "요." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#, fuzzy +msgid "Remove unused ``using`` statements and unnecessary parentheses." msgstr "사용하지 않는 *'using'* 명령문과 불필요한 괄호는 지우세요." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#, fuzzy +msgid "Consider omitting the default initial value for a type." msgstr "한 타입에 대한 기본 초기 값을 생략하는 것을 고려하세요." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." @@ -19106,7 +19265,7 @@ msgstr "" "코드를 더 간결하게 만들기 위해 null 조건의 연산자나 타입 이니셜라이저를 사용" "하는 것을 고려해보세요." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -22702,10 +22861,16 @@ msgstr "" "바꾸면 됩니다." #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "내보내기를 마치면, 출력 폴더는 다음과 같아야 합니다:" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." @@ -22713,11 +22878,11 @@ msgstr "" "**exported_xcode_project_name.xcodeproj**\\ 를 열면 다른 iOS 앱처럼 게임을 빌" "드하고 배포할 수 있게 됩니다." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "능동적 개발 고려사항" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." @@ -22725,7 +22890,7 @@ msgstr "" "위의 방법으로 프로젝트를 내보내서 출시를 위한 빌드를 할 수 있지만, Godot에서 " "변경사항이 있다면 그 때마다 다시 내보내어야 합니다." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." @@ -22733,11 +22898,11 @@ msgstr "" "개발 도중, Godot 프로젝트 파일을 앱에 직접 연결함으로써 이 처리 속도를 높일 " "수 있습니다." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "다음 예제에서:" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." @@ -22745,23 +22910,23 @@ msgstr "" "**exported_xcode_project_name**\\ 은 내보낸 iOS 애플리케이션의 이름입니다 (위" "와 같이)." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "**godot_project_to_export**\\ 는 Godot 프로젝트의 이름입니다." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "Godot 프로젝트 폴더를 Xcode에 연결하는 단계" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "내보낸 iOS 프로젝트에서 시작합니다 (앞의 단계를 따라야 합니다)." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "Finder에서, Godot 프로젝트 폴더를 Xcode 파일 브라우저로 드래그합니다." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " @@ -22770,16 +22935,16 @@ msgstr "" "3. 대화 상자에서, **Create folder references**\\ 가 선택되어야 합니다. 이게 " "있어야 Godot 프로젝트를 현재 위치에서 계속 편집할 수 있습니다." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "Xcode 파일 브라우저에서 **godot_project_to_export** 폴더를 봅니다." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" "Xcode 프로젝트에서 **exported_xcode_project_name.pck**\\ 를 삭제합니다." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " @@ -22789,7 +22954,7 @@ msgstr "" "는 문자열 속성을 추가하고 (이것이 진짜 키 이름입니다) " "**godot_project_to_export** 값을 줍니다 (이것이 프로젝트의 이름입니다)" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." @@ -22797,12 +22962,12 @@ msgstr "" "됬습니다! 이제 Godot 에디터에서 프로젝트를 편집할 수 있고 기기에서 실행하고 " "싶을 때 Xcode에서 빌드할 수 있습니다." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "iOS 용 서비스" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -31115,18 +31280,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -31134,11 +31315,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -31148,11 +31329,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "깊이" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -31161,34 +31342,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -31196,33 +31377,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -31230,17 +31411,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -31249,17 +31430,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -31379,7 +31560,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -31796,7 +31978,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -31871,13 +32053,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -31886,30 +32075,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "``GIProbe``\\ 의 주요 단점은 이러합니다:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -31917,63 +32106,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "빛 추가하기" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -31981,82 +32170,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -32653,7 +32842,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -32661,28 +32850,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -32692,7 +32881,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -32702,57 +32891,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -32761,7 +32950,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -32769,52 +32958,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -32824,28 +33013,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -32853,47 +33042,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -32902,65 +33091,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -32970,27 +33159,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -32998,78 +33187,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -34313,23 +34502,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -34337,90 +34526,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -34429,30 +34618,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -34460,120 +34649,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -34581,13 +34770,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -34595,44 +34784,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -34640,14 +34829,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -34656,37 +34845,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -34694,7 +34883,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -34703,7 +34892,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -34711,7 +34900,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -34719,12 +34908,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -34732,30 +34921,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -34763,30 +34952,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -34794,14 +34983,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -34809,86 +34998,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -34896,62 +35085,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -34960,7 +35149,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -34968,44 +35157,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -35015,32 +35204,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -35050,7 +35239,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -42355,7 +42544,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -42366,99 +42555,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -42466,11 +42655,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -42481,26 +42670,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -42509,7 +42698,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -43549,7 +43738,7 @@ msgstr "" "``move_and_slide()``\\ 가 원하는 응답을 제공하지 않는 경우도 있습니다." #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "예제" @@ -49756,10 +49945,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "현지화" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -58439,7 +58624,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -69445,6 +69630,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -69455,52 +69644,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -71365,9 +71554,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -71398,7 +71587,7 @@ msgstr "타사 도구" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -71427,7 +71616,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -71451,9 +71640,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -71858,7 +72047,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -72144,7 +72333,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -72305,17 +72494,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -72324,7 +72512,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -72397,7 +72585,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -72426,12 +72614,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -72451,57 +72638,54 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" -msgstr "" +#, fuzzy +msgid "PulseAudio development libraries" +msgstr "능동적 개발 고려사항" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -72509,7 +72693,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -72517,57 +72701,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -72578,6 +72771,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -73483,7 +73680,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -73491,18 +73687,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -73510,27 +73706,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -73538,21 +73734,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -73563,12 +73759,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -73576,7 +73772,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -73585,28 +73781,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -73616,7 +73812,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -73626,19 +73822,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -73647,7 +73843,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -73655,14 +73851,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -73671,57 +73867,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -73732,7 +73928,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -73742,55 +73938,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "안드로이드로 내보내기" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -73799,65 +73995,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "명령 줄 설정" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -73988,7 +74184,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" @@ -79816,6 +80012,73 @@ msgid "" "`_" msgstr "" +#~ msgid "" +#~ ":ref:`Animating thousands of fish with MultiMesh " +#~ "`" +#~ msgstr "" +#~ ":ref:`MultiMesh로 수천개의 물고기를 움직이게 하기 " +#~ "`" + +#~ msgid "Killer features" +#~ msgstr "킬러 기능" + +#~ msgid "" +#~ "Note that Godot editor allows you to dock each panel at the side of the " +#~ "scene editor you wish." +#~ msgstr "" +#~ "Godot 에디터는 당신이 원하는 씬 에디터 옆에 각 패널을 고정할 수 있습니다." + +#~ msgid "" +#~ "These are the most important concepts you need to remember: \"node\", " +#~ "\"parent node\", and \"child node\"." +#~ msgstr "" +#~ "기억해야 할 가장 중요한 개념들 입니다: \"노드\", \"부모 노드\" 그리고 \"자" +#~ "식 노드\"." + +#~ msgid "" +#~ "We previously observed that there is no perfect solution to set a project " +#~ "architecture. Any solution will work for Unity and Godot, so this point " +#~ "has a lesser importance." +#~ msgstr "" +#~ "우리는 이전에 프로젝트 구조를 설정하는 완벽한 해결책이 없다는 것을 인지하" +#~ "였습니다. 어떤 해결책이든 유니티와 Godot를 위해 작동할 것이기에, 이 점은 " +#~ "덜 중요합니다." + +#~ msgid "Prefab -> Externalized branch" +#~ msgstr "프리펩 -> 외부화된 분기" + +#~ msgid "" +#~ "Here's an example that creates a custom signal in one script and connects " +#~ "the custom signal to a method in a separate script, using the :ref:" +#~ "`Object.connect() ` method:" +#~ msgstr "" +#~ "다음은 :ref:`Object.connect() ` 메서드를 이용" +#~ "해 한 스크립트에 커스텀 시그널을 만들고 이를 다른 스크립트에 연결하는 예시" +#~ "입니다:" + +#~ msgid "" +#~ "Here is an example that creates a connection between a button's " +#~ "``pressed`` signal and a method, binding the button instance to the " +#~ "connection. The handler uses the bound argument to print which button " +#~ "instance was pressed." +#~ msgstr "" +#~ "다음은 버튼을 연결에 묶어서, 버튼의 ``pressed`` 시그널과 메서드를 연결하" +#~ "는 예제입니다. handler는 눌린 버튼 인스턴스와 묶인 인수를 프린트 합니다." + +#~ msgid "" +#~ "Signals are generated by the :ref:`Object.emit_signal() " +#~ "` method which broadcasts the signal and " +#~ "arguments." +#~ msgstr "" +#~ "시그널은 시그널과 인수를 뿌리는 :ref:`Object.emit_signal() " +#~ "` 메서드로 생성됩니다." + +#~ msgid "" +#~ "Extending a previous example to use all the features of GDScript signals:" +#~ msgstr "" +#~ "다음은 GDScript 시그널의 모든 기능을 사용하기 위해 이전 예제에서 확장된 것" +#~ "입니다:" + #~ msgid "" #~ "Consider breaking a line when it's longer than 100 characters. And it's " #~ "also a good practice to insert a line feed (LF) character at the end of a " diff --git a/weblate/lt.po b/weblate/lt.po index f5c2da76e3..d689e7eec2 100644 --- a/weblate/lt.po +++ b/weblate/lt.po @@ -10,7 +10,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2018-06-12 09:40+0000\n" "Last-Translator: Kornelijus \n" "Language-Team: Lithuanian `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Pamokos" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Bendruomenė" @@ -964,360 +968,357 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +msgid ":ref:`doc_android_plugin`" msgstr "" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -1780,7 +1781,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2075,11 +2076,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2089,14 +2092,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2776,8 +2779,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2955,7 +2958,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4155,36 +4158,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4194,17 +4197,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4212,7 +4215,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4220,28 +4223,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4251,25 +4254,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4346,7 +4349,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4769,9 +4772,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7533,7 +7535,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8618,223 +8620,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8842,65 +8844,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8910,59 +8913,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -8972,142 +8977,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9115,7 +9111,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9123,30 +9119,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9154,7 +9149,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9162,27 +9157,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9191,7 +9186,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9200,11 +9195,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9212,7 +9207,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11306,11 +11301,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11321,67 +11323,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11391,43 +11455,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11435,7 +11499,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11443,11 +11507,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -11959,7 +12023,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14045,7 +14109,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14875,10 +14939,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14893,273 +14956,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18126,91 +18186,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25430,18 +25496,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25449,11 +25531,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25463,11 +25545,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25476,34 +25558,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25511,33 +25593,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25545,17 +25627,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25564,17 +25646,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25694,7 +25776,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26111,7 +26194,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26186,13 +26269,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26201,30 +26291,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26232,63 +26322,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26296,82 +26386,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -26968,7 +27058,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -26976,28 +27066,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27007,7 +27097,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27017,57 +27107,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27076,7 +27166,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27084,52 +27174,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27139,28 +27229,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27168,47 +27258,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27217,65 +27307,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27285,27 +27375,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27313,78 +27403,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28625,23 +28715,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28649,90 +28739,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28741,30 +28831,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28772,120 +28862,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28893,13 +28983,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28907,44 +28997,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -28952,14 +29042,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -28968,37 +29058,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29006,7 +29096,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29015,7 +29105,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29023,7 +29113,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29031,12 +29121,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29044,30 +29134,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29075,30 +29165,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29106,14 +29196,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29121,86 +29211,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29208,62 +29298,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29272,7 +29362,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29280,44 +29370,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29327,32 +29417,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29362,7 +29452,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36654,7 +36744,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36665,99 +36755,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36765,11 +36855,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36780,26 +36870,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36808,7 +36898,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37599,7 +37689,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43205,10 +43295,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51852,7 +51938,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62669,6 +62755,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62679,52 +62769,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64549,9 +64639,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64580,7 +64670,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64608,7 +64698,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64632,9 +64722,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65039,7 +65129,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65325,7 +65415,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65486,17 +65576,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65505,7 +65594,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65578,7 +65667,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65607,12 +65696,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65632,57 +65720,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65690,7 +65774,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65698,57 +65782,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65759,6 +65852,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66662,7 +66759,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66670,18 +66766,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66689,27 +66785,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66717,21 +66813,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66742,12 +66838,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66755,7 +66851,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66764,28 +66860,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66795,7 +66891,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66805,19 +66901,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66826,7 +66922,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66834,14 +66930,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66850,57 +66946,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66911,7 +67007,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -66921,54 +67017,54 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 msgid "Targeting Android" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -66977,65 +67073,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67166,7 +67262,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/mi.po b/weblate/mi.po index 9339b2bc3d..54d552bb7e 100644 --- a/weblate/mi.po +++ b/weblate/mi.po @@ -6,7 +6,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: Maori `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "" @@ -943,360 +947,357 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +msgid ":ref:`doc_android_plugin`" msgstr "" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -1759,7 +1760,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2054,11 +2055,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2068,14 +2071,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2755,8 +2758,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2934,7 +2937,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4134,36 +4137,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4173,17 +4176,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4191,7 +4194,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4199,28 +4202,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4230,25 +4233,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4325,7 +4328,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4748,9 +4751,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7512,7 +7514,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8596,223 +8598,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8820,65 +8822,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8888,59 +8891,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -8950,142 +8955,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9093,7 +9089,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9101,30 +9097,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9132,7 +9127,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9140,27 +9135,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9169,7 +9164,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9178,11 +9173,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9190,7 +9185,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11283,11 +11278,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11298,67 +11300,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11368,43 +11432,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11412,7 +11476,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11420,11 +11484,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -11936,7 +12000,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14022,7 +14086,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14851,10 +14915,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14869,273 +14932,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18102,91 +18162,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25405,18 +25471,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25424,11 +25506,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25438,11 +25520,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25451,34 +25533,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25486,33 +25568,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25520,17 +25602,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25539,17 +25621,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25669,7 +25751,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26086,7 +26169,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26161,13 +26244,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26176,30 +26266,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26207,63 +26297,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26271,82 +26361,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -26943,7 +27033,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -26951,28 +27041,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -26982,7 +27072,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -26992,57 +27082,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27051,7 +27141,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27059,52 +27149,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27114,28 +27204,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27143,47 +27233,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27192,65 +27282,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27260,27 +27350,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27288,78 +27378,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28599,23 +28689,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28623,90 +28713,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28715,30 +28805,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28746,120 +28836,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28867,13 +28957,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28881,44 +28971,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -28926,14 +29016,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -28942,37 +29032,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -28980,7 +29070,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -28989,7 +29079,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -28997,7 +29087,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29005,12 +29095,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29018,30 +29108,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29049,30 +29139,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29080,14 +29170,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29095,86 +29185,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29182,62 +29272,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29246,7 +29336,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29254,44 +29344,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29301,32 +29391,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29336,7 +29426,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36628,7 +36718,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36639,99 +36729,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36739,11 +36829,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36754,26 +36844,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36782,7 +36872,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37573,7 +37663,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43179,10 +43269,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51826,7 +51912,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62643,6 +62729,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62653,52 +62743,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64522,9 +64612,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64553,7 +64643,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64581,7 +64671,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64605,9 +64695,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65012,7 +65102,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65298,7 +65388,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65459,17 +65549,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65478,7 +65567,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65551,7 +65640,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65580,12 +65669,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65605,57 +65693,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65663,7 +65747,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65671,57 +65755,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65732,6 +65825,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66635,7 +66732,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66643,18 +66739,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66662,27 +66758,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66690,21 +66786,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66715,12 +66811,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66728,7 +66824,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66737,28 +66833,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66768,7 +66864,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66778,19 +66874,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66799,7 +66895,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66807,14 +66903,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66823,57 +66919,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66884,7 +66980,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -66894,54 +66990,54 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 msgid "Targeting Android" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -66950,65 +67046,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67139,7 +67235,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/ms.po b/weblate/ms.po index 66f15ae7a2..ab947cbee4 100644 --- a/weblate/ms.po +++ b/weblate/ms.po @@ -10,7 +10,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-03-10 09:56+0000\n" "Last-Translator: Razman Ramly \n" "Language-Team: Malay `_, atau di saluran ``#godotengine-doc`` pada " "`irc.freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Dokumentasi utama untuk laman sesawang ini telah diaturkan ke bahagian-" "bahagian yang berikut:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Am" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Bermula" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutorial" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Pembangunan" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Komuniti" @@ -1001,362 +1005,363 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" +msgstr "Perbezaan" + +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" +msgstr "Perbezaan" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Mencipta Kandungan" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Mencipta skrin menu utama" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Mencipta skrin menu utama" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1818,7 +1823,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2113,11 +2118,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2127,14 +2134,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2814,8 +2821,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2993,7 +3000,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4194,36 +4201,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4233,17 +4240,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4251,7 +4258,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4259,28 +4266,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4290,26 +4297,26 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 #, fuzzy msgid "Project files" msgstr "Fail Projek" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4386,7 +4393,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4810,9 +4817,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7580,7 +7586,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8664,223 +8670,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "Perbezaan" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Lesen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "Windows, macOS, Linux (tidak rasmi dan tidak disokong)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "OS (eksport)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8888,65 +8894,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8956,59 +8963,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9018,142 +9027,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9161,7 +9161,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9169,30 +9169,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9200,7 +9199,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9208,27 +9207,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9237,7 +9236,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9246,11 +9245,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9258,7 +9257,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11352,11 +11351,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11367,67 +11373,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11437,43 +11505,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11481,7 +11549,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11489,11 +11557,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12005,7 +12073,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14094,7 +14162,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14924,10 +14992,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14943,273 +15010,270 @@ msgid "Formatting conventions" msgstr "Mencipta Kandungan" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18179,91 +18243,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25489,18 +25559,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25508,11 +25594,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25522,11 +25608,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25535,34 +25621,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25570,33 +25656,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25604,17 +25690,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25623,17 +25709,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25753,7 +25839,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26170,7 +26257,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26245,13 +26332,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26260,30 +26354,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26291,63 +26385,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26355,82 +26449,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27027,7 +27121,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27035,28 +27129,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27066,7 +27160,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27076,57 +27170,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27135,7 +27229,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27143,52 +27237,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27198,28 +27292,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27227,47 +27321,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27276,65 +27370,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27344,27 +27438,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27372,78 +27466,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28684,23 +28778,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28708,90 +28802,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28800,30 +28894,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28831,120 +28925,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28952,13 +29046,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28966,44 +29060,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29011,14 +29105,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29027,37 +29121,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29065,7 +29159,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29074,7 +29168,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29082,7 +29176,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29090,12 +29184,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29103,30 +29197,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29134,30 +29228,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29165,14 +29259,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29180,86 +29274,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29267,62 +29361,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29331,7 +29425,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29339,44 +29433,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29386,32 +29480,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29421,7 +29515,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36714,7 +36808,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36725,99 +36819,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36825,11 +36919,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36840,26 +36934,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36868,7 +36962,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37659,7 +37753,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43276,10 +43370,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51926,7 +52016,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62748,6 +62838,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62758,52 +62852,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64629,9 +64723,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64660,7 +64754,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64688,7 +64782,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64712,9 +64806,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65119,7 +65213,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65405,7 +65499,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65566,17 +65660,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65585,7 +65678,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65658,7 +65751,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65687,12 +65780,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65712,57 +65804,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65770,7 +65858,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65778,57 +65866,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65839,6 +65936,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66742,7 +66843,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66750,18 +66850,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66769,27 +66869,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66797,21 +66897,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66822,12 +66922,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66835,7 +66935,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66844,28 +66944,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66875,7 +66975,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66885,19 +66985,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66906,7 +67006,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66914,14 +67014,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66930,57 +67030,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66991,7 +67091,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67001,55 +67101,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Mencipta skrin menu utama" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67058,65 +67158,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67247,7 +67347,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/nb.po b/weblate/nb.po index 5e23947d86..e016e28a61 100644 --- a/weblate/nb.po +++ b/weblate/nb.po @@ -15,7 +15,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:06+0000\n" "Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål `_, eller på ``#godotengine-doc`` kanalen på `irc." "freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Hoveddokumentasjonen på denne siden er organisert i disse seksjonene:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Generelt" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Kom i gang" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Brukerveiledninger (Tutorials)" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Utvikling" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Fellesskap" @@ -1013,360 +1017,357 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +msgid ":ref:`doc_android_plugin`" msgstr "" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -1829,7 +1830,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2124,11 +2125,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2138,14 +2141,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2825,8 +2828,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3004,7 +3007,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4204,36 +4207,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4243,17 +4246,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4261,7 +4264,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4269,28 +4272,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4300,25 +4303,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4395,7 +4398,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4818,9 +4821,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7582,7 +7584,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8667,223 +8669,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8891,65 +8893,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8959,59 +8962,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9021,142 +9026,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9164,7 +9160,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9172,30 +9168,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9203,7 +9198,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9211,27 +9206,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9240,7 +9235,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9249,11 +9244,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9261,7 +9256,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11355,11 +11350,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11370,67 +11372,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11440,43 +11504,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11484,7 +11548,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11492,11 +11556,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12008,7 +12072,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14094,7 +14158,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14924,10 +14988,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14942,273 +15005,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18175,91 +18235,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25480,18 +25546,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25499,11 +25581,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25513,11 +25595,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25526,34 +25608,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25561,33 +25643,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25595,17 +25677,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25614,17 +25696,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25744,7 +25826,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26161,7 +26244,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26236,13 +26319,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26251,30 +26341,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26282,63 +26372,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26346,82 +26436,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27018,7 +27108,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27026,28 +27116,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27057,7 +27147,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27067,57 +27157,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27126,7 +27216,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27134,52 +27224,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27189,28 +27279,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27218,47 +27308,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27267,65 +27357,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27335,27 +27425,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27363,78 +27453,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28675,23 +28765,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28699,90 +28789,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28791,30 +28881,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28822,120 +28912,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28943,13 +29033,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28957,44 +29047,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29002,14 +29092,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29018,37 +29108,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29056,7 +29146,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29065,7 +29155,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29073,7 +29163,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29081,12 +29171,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29094,30 +29184,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29125,30 +29215,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29156,14 +29246,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29171,86 +29261,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29258,62 +29348,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29322,7 +29412,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29330,44 +29420,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29377,32 +29467,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29412,7 +29502,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36704,7 +36794,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36715,99 +36805,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36815,11 +36905,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36830,26 +36920,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36858,7 +36948,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37649,7 +37739,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43255,10 +43345,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51903,7 +51989,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62722,6 +62808,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62732,52 +62822,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64602,9 +64692,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64633,7 +64723,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64661,7 +64751,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64685,9 +64775,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65092,7 +65182,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65378,7 +65468,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65539,17 +65629,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65558,7 +65647,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65631,7 +65720,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65660,12 +65749,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65685,57 +65773,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65743,7 +65827,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65751,57 +65835,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65812,6 +65905,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66715,7 +66812,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66723,18 +66819,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66742,27 +66838,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66770,21 +66866,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66795,12 +66891,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66808,7 +66904,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66817,28 +66913,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66848,7 +66944,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66858,19 +66954,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66879,7 +66975,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66887,14 +66983,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66903,57 +66999,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66964,7 +67060,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -66974,54 +67070,54 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 msgid "Targeting Android" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67030,65 +67126,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67219,7 +67315,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/nl.po b/weblate/nl.po index 2d55df7864..a5c10c673d 100644 --- a/weblate/nl.po +++ b/weblate/nl.po @@ -23,7 +23,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-04-29 11:45+0000\n" "Last-Translator: Xoronic \n" "Language-Team: Dutch `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "De belangrijkste documentatie op de website is opgedeeld in de volgende " "onderdelen:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Algemeen" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Aan de slag" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Handleidingen" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Ontwikkeling" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Gemeenschap" @@ -1133,363 +1137,363 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Lokalisatie" + +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animatie" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animatie" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Content Maken" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Aan de slag" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1973,7 +1977,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 #, fuzzy msgid "Editor" msgstr "Verwerker" @@ -2269,11 +2273,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2283,14 +2289,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2970,8 +2976,8 @@ msgstr "Groepen" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3149,7 +3155,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4350,36 +4356,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4389,17 +4395,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4407,7 +4413,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4415,28 +4421,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4446,25 +4452,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4541,7 +4547,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4964,9 +4970,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7728,7 +7733,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8812,223 +8817,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licentie" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9036,65 +9041,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9104,59 +9110,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9166,142 +9174,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9309,7 +9308,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9317,30 +9316,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9348,7 +9346,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9356,27 +9354,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9385,7 +9383,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9394,11 +9392,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9406,7 +9404,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11500,11 +11498,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11515,67 +11520,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11585,43 +11652,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11629,7 +11696,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11637,11 +11704,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12153,7 +12220,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14239,7 +14306,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15068,10 +15135,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15086,273 +15152,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18320,91 +18383,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25627,18 +25696,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25646,11 +25731,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25660,11 +25745,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Diepte" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25673,34 +25758,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25708,33 +25793,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25742,17 +25827,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25761,17 +25846,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25891,7 +25976,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26308,7 +26394,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26383,13 +26469,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26398,30 +26491,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26429,63 +26522,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26493,82 +26586,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27165,7 +27258,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27173,28 +27266,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27204,7 +27297,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27214,57 +27307,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27273,7 +27366,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27281,52 +27374,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27336,28 +27429,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27365,47 +27458,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27414,65 +27507,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27482,27 +27575,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27510,78 +27603,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28822,23 +28915,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28846,90 +28939,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28938,30 +29031,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28969,120 +29062,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29090,13 +29183,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29104,44 +29197,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29149,14 +29242,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29165,37 +29258,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29203,7 +29296,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29212,7 +29305,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29220,7 +29313,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29228,12 +29321,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29241,30 +29334,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29272,30 +29365,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29303,14 +29396,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29318,86 +29411,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29405,62 +29498,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29469,7 +29562,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29477,44 +29570,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29524,32 +29617,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29559,7 +29652,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36852,7 +36945,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36863,99 +36956,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36963,11 +37056,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36978,26 +37071,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37006,7 +37099,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37797,7 +37890,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43407,10 +43500,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52059,7 +52148,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62883,6 +62972,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62893,52 +62986,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64764,9 +64857,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64795,7 +64888,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64824,7 +64917,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64848,9 +64941,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65255,7 +65348,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65541,7 +65634,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65702,17 +65795,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65721,7 +65813,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65794,7 +65886,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65823,12 +65915,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65848,57 +65939,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65906,7 +65993,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65914,57 +66001,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65975,6 +66071,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66878,7 +66978,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66886,18 +66985,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66905,27 +67004,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66933,21 +67032,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66958,12 +67057,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66971,7 +67070,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66980,28 +67079,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67011,7 +67110,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67021,19 +67120,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67042,7 +67141,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67050,14 +67149,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67066,57 +67165,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67127,7 +67226,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67137,55 +67236,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Aan de slag" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67194,65 +67293,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67383,7 +67482,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/pl.po b/weblate/pl.po index b131d65465..b90503fa3e 100644 --- a/weblate/pl.po +++ b/weblate/pl.po @@ -36,7 +36,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: Tomek \n" "Language-Team: Polish `_, lub ``#godotengine-doc`` na `irc.freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Główna dokumentacja dla tej strony dzieli się na następujące sekcje:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Ogólne" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Podstawy" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Samouczki" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Rozwój" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Społeczność" @@ -1303,391 +1307,429 @@ msgstr "" "zostały one wspomniane w tym dokumencie." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Nowe poradniki wprowadzone po wersji 3.0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "Umiędzynarodowienie" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Lokalizacja" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "Nowe poradniki wprowadzone po wersji 3.0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Krok po kroku" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`Sygnały `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`Eksportowanie `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Workflow projektu" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "Dobre praktyki:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Wprowadzenie `" -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Czym są klasy Godot `" -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organizacja sceny `" -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Sceny kontra skrypty `" -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" +#: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Automatyczne ładowanie kontra węzły wewnętrzne " "`" -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" +#: ../../docs/about/docs_changelog.rst:41 +#, fuzzy +msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Alternatywy węzłów `" -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Interfejs Godota `" -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Powiadomienia Godota `" -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Preferencje danych `" -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Preferencje logiki `" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "Skrypty" -#: ../../docs/about/docs_changelog.rst:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +#, fuzzy +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Typowanie silne w GDscript `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +#, fuzzy +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Oświetlenie i cienie 2D `" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Kształty 2D `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" -msgstr "" -":ref:`Animowanie tysięcy ryb za pomocą MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +#, fuzzy +msgid ":ref:`doc_animating_thousands_of_fish`" +msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +#, fuzzy +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Kontrolowanie tysięcy ryb za pomocą cząsteczek " "`" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Fizyka" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`System Ragdolli `" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" msgstr ":ref:`Ciało miękkie `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animacje" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Szkielety 2D `" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`AnimationTree `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:72 +#: ../../docs/about/docs_changelog.rst:80 #, fuzzy -msgid ":ref:`Containers `" +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Interfejs Godota `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Okno podglądu" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +#, fuzzy +msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Używanie Viewport jako tekstury `" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Dostosowany post-processing `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Shadery" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +#: ../../docs/about/docs_changelog.rst:91 +#, fuzzy +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Wprowadzenie do shaderów: Woda 2D i 3D (7 poradników filmowych) " "`" -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +#: ../../docs/about/docs_changelog.rst:92 +#, fuzzy +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migracja do języka cieniowania Godota " "`" -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr ":ref:`Zaawansowany post-processing `" +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "Zaawansowany post-processing" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 #, fuzzy msgid "Your First Shader Series:" msgstr "Twoja pierwsza gra" -#: ../../docs/about/docs_changelog.rst:88 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy -msgid ":ref:`What are shaders? `" +msgid ":ref:`doc_what_are_shaders`" msgstr " :ref:`Shadery przestrzenne `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:97 #, fuzzy -msgid ":ref:`Your first CanvasItem shader `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr " :ref:`Shadery cząstek`" -#: ../../docs/about/docs_changelog.rst:90 -#, fuzzy -msgid ":ref:`Your first Spatial shader `" -msgstr " :ref:`Shadery przestrzenne `" - -#: ../../docs/about/docs_changelog.rst:91 -#, fuzzy -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr " :ref:`Shadery przestrzenne `" - #: ../../docs/about/docs_changelog.rst:98 #, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" +msgstr " :ref:`Shadery przestrzenne `" + +#: ../../docs/about/docs_changelog.rst:99 +#, fuzzy +msgid ":ref:`doc_your_second_spatial_shader`" +msgstr " :ref:`Shadery przestrzenne `" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy msgid "Shading Reference:" msgstr "Zmiana aktualnej sceny" -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" msgstr ":ref:`Shadery `" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" msgstr ":ref:`Język cieniowania `" -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" msgstr " :ref:`Shadery przestrzenne `" -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" +msgstr ":ref:`doc_vectors_advanced`" -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" msgstr " :ref:`Shadery cząstek`" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:111 +#, fuzzy +msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Poradnik początków z VR `" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Specyficzny dla platformy" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Dostosowanie eksportu do strony sieciowej HTML " "`" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Wielowątkowość" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +#, fuzzy +msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Wątkowo-bezpieczne API `" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Optymalizacja" -#: ../../docs/about/docs_changelog.rst:118 +#: ../../docs/about/docs_changelog.rst:126 #, fuzzy -msgid ":ref:`Using MultiMesh `" +msgid ":ref:`doc_using_multimesh`" msgstr " :ref:`Tworzenie drzew `" -#: ../../docs/about/docs_changelog.rst:119 +#: ../../docs/about/docs_changelog.rst:127 #, fuzzy -msgid ":ref:`Using servers `" +msgid ":ref:`doc_using_servers`" msgstr " :ref:`Tworzenie drzew `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Różności" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +#, fuzzy +msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Naprawa drgań i migania `" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +#, fuzzy +msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Uruchamianie kodu w edytorze `" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +#, fuzzy +msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Ręczna zmiana scen `" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +#, fuzzy +msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`Różnice pomiędzy GLES2 i GLES3 `" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 +#: ../../docs/about/docs_changelog.rst:140 #, fuzzy -msgid ":ref:`Complying with Licenses `" +msgid ":ref:`doc_complying_with_licenses`" msgstr "" ":ref:`Kompilowanie z użyciem klucza szyfrowania " "skryptu`" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "Kompilowanie" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +#, fuzzy +msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`Optymalizacja rozmiaru projektu `" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" -msgstr "" -":ref:`Kompilowanie z użyciem klucza szyfrowania " -"skryptu`" +#: ../../docs/about/docs_changelog.rst:146 +#, fuzzy +msgid ":ref:`doc_compiling_with_script_encryption_key`" +msgstr "Kompilowanie z Mono" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Rozwój silnika" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" -msgstr "" -":ref:`Dowiązania do zewnętrznych bibliotek " -"`" +#: ../../docs/about/docs_changelog.rst:151 +#, fuzzy +msgid ":ref:`doc_binding_to_external_libraries`" +msgstr "Łączenie zewnętrznych bibliotek z Godotem (jak PhysX, FMOD itp.)." -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Tworzenie zawartości" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" msgstr " :ref:`Tworzenie drzew `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Wtyczki" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Tworzenie wtyczek ekranu głównego `" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 +#: ../../docs/about/docs_changelog.rst:162 #, fuzzy -msgid ":ref:`Creating Android plugins `" +msgid ":ref:`doc_spatial_gizmo_plugins`" +msgstr "Tworzenie wtyczek" + +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" msgstr "" ":ref:`Tworzenie wtyczek ekranu głównego `" @@ -2249,7 +2291,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Edytor" @@ -2643,14 +2685,16 @@ msgstr "" #, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "Można również dostosować poszczególne instancje. Ustaw wartość odbicia z " "powrotem na ``0.5`` a następnie w scenie ``Main`` wybierz jedną z kul. Ustaw " "``odbicie`` na ``1`` i naciśnij \"Odtwórz\"." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2666,14 +2710,14 @@ msgstr "" "wartość niestandardowa pozostanie. Naciśnięcie przycisku przywracania " "spowoduje przywrócenie właściwości do wartości zapisanej sceny." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Wniosek" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3567,8 +3611,8 @@ msgstr "Grupy" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Węzły mogą być dodawane do grup, w dowolnej liczbie do każdego węzeła i są " "użytecznym narzędziem do organizowania dużych scen. Można je ustawić na dwa " @@ -3807,7 +3851,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5379,25 +5423,25 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 #, fuzzy msgid "Finishing up" msgstr "Kończenie" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -5408,12 +5452,12 @@ msgstr "" "celu poprawy wrażeń z gry. Zapraszamy do rozszerzenia rozgrywki o własne " "pomysły." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "Tło" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5429,7 +5473,7 @@ msgstr "" "Wybierz kolor, który chcesz i przeciągnij ``ColorRect`` tak, aby zakrył " "ekran." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 #, fuzzy msgid "" "You could also add a background image, if you have one, by using a " @@ -5438,12 +5482,12 @@ msgstr "" "Obraz tła można również dodać, jeśli taki istnieje, za pomocą węzła " "``Sprite``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 #, fuzzy msgid "Sound effects" msgstr "Efekty dźwiękowe" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5455,7 +5499,7 @@ msgstr "" "\"House In a Forest Loop.ogg\" na muzykę w tle i \"gameover.wav\" odtwarzaną " "w razie przegranej." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5467,7 +5511,7 @@ msgstr "" "każdym z nich kliknij na właściwość ``Stream``, wybierz opcję \"Wczytaj\" i " "wybierz odpowiedni plik audio." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5475,22 +5519,22 @@ msgstr "" "Aby odtwarzać muzykę, dodaj ``$Music.play()`` w funkcji ``new_game()`` i ``" "$Music.stop( )`` w funkcji ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "Na koniec dodaj ``$DeathSound.play()`` do funkcji ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "Skrót klawiszowy" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5500,32 +5544,32 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 #, fuzzy msgid "Project files" msgstr "Pliki projektu" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 #, fuzzy msgid "You can find a completed version of this project at these locations:" msgstr "" "Ukończoną wersję projektu można znaleźć pod adresem: https://github.com/" "kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 #, fuzzy msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" "Ukończoną wersję projektu można znaleźć pod adresem: https://github.com/" "kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 #, fuzzy msgid "https://github.com/godotengine/godot-demo-projects" msgstr "`GitHub `_" @@ -5629,7 +5673,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -6202,9 +6246,8 @@ msgstr "" #, fuzzy msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" "Każdy może podłączyć własne narzędzia na potrzeby swoich projektów - po " "prostu nie będzie ich dystrybuował wraz z silnikiem. Może to być NViDia " @@ -9258,7 +9301,7 @@ msgstr ":download:`robisplash_assets.zip `." #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -10540,68 +10583,75 @@ msgstr "" "użytkownika Unit i ma na celu pomóc w migracji istniejącego doświadczenia z " "silnika Unity do świata Godota." -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "Różnice" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licencja" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" "Własnościowa, zamknięta, darmowa licencja z limitami przychodów i " "ograniczeniami w użytkowaniu" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" "Licencja MIT, wolne i w pełni otwarte oprogramowanie bez żadnych ograniczeń" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "System Operacyjny (edytor)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "Windows, MacOS, Linux (nieoficjalny i niewspierany)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "System Operacyjny (gra)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**Komputery stacjonarne:** Windows, macOS, Linux" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**Mobilne:**Android, iOS, Windows Phone, Tizen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "**Sieć:** WebAssembly lub asm.js" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "**Konsole:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" @@ -10609,43 +10659,43 @@ msgstr "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "**TV:** Android TV, Samsung SMART TV, tvOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "**PC:** Windows, macOS, X11" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "**Mobilne:** Android, iOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "**Przeglądarki:** WebAssembly" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "**Konsola:** Patrz :ref:`doc_consoles`" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "**VR:** Oculus Rift, SteamVR" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "System scen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "Komponent/Scena (Obiekt w grze > Komponent)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "Prefaby" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" @@ -10653,80 +10703,74 @@ msgstr "" ":ref:`Drzewo sceny i węzły`, umożliwiające " "zagnieżdżenie scen i/lub dziedziczenie innych scen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "Obce narzędzia" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "Visual Studio lub VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr ":ref:`Możliwe są edytory zewnętrzne `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr ":ref:`Android SDK dla eksportu na Android `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" -msgstr "Wybitne elementy w programie" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +#, fuzzy +msgid "Notable advantages" +msgstr "**Kategorie:**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "Ogromna społeczność" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "Duży sklep zasobów do gry" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "System scen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr ":ref:`Proste pisanie Shaderów `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "Debugowanie na urządzeniu" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "Edytor" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 +#, fuzzy msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" "Godot Engine udostępnia bogaty edytor, który umożliwia tworzenie gier. " "Poniższe ilustracje przedstawiają oba edytory z kolorowymi blokami, aby " "wskazać wspólne funkcjonalności." -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" -"Zauważ, że edytor Godot umożliwia zadokowanie każdego panelu, po obu " -"stronach edytora sceny." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 #, fuzzy msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" "Oba edytory mogą wydawać się podobne, ale pod maską skrywają wiele różnic. " "Obydwa pozwalają zorganizować projekt przy użyciu systemu plików, ale " @@ -10735,27 +10779,27 @@ msgstr "" "że Godot jest znacznie bardziej przyjazny dla systemów VCS takich jak Git, " "Subversion czy Mercurial." -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 +#, fuzzy msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" "Panel sceny Godota jest podobny do panelu hierarchii w Unity, ale ponieważ " "każdy węzeł ma określoną funkcję, podejście użyte przez Godota jest opisane " "bardziej wizualnie. Innymi słowy, łatwiej jest zrozumieć, co konkretna scena " "robi na pierwszy rzut oka." -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 #, fuzzy msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" "Inspektor w Godocie jest bardziej minimalistyczny i ma za zadanie jedynie " "pokazywać właściwości. Dzięki temu obiekty mogą eksportować większą ilość " @@ -10765,27 +10809,27 @@ msgstr "" "tekstur, wyliczeń, a nawet linków do zasobów w czasie rzeczywistym bez " "konieczności stosowania kodu." -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 #, fuzzy msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" "Takie podejście ma tę wadę, że gra nie może być wystarczająco dobrze " "sprawdzona(choć może to być wspierane w przyszłości, a wyświetlanie kolizji " "w uruchomionej grze jest już możliwe), ale w zamian ma kilka zalet:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 #, fuzzy msgid "" "Running the project and closing it is fast (Unity has to save, run the " @@ -10794,7 +10838,7 @@ msgstr "" "Uruchamianie i zamykanie projektu jest szybkie (Unity musi zapisać, " "uruchomić projekt, zamknąć projekt, a następnie załadować poprzedni stan)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 #, fuzzy msgid "" "Live editing is a lot more useful because changes done to the editor take " @@ -10807,55 +10851,56 @@ msgstr "" "być zsynchronizowane) po zamknięciu gry. Pozwala to na np. tworzenie " "poziomów podczas ich odtwarzania." -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 #, fuzzy msgid "The editor is more stable because the game runs in a separate process." msgstr "" "Edytor jest bardziej stabilny, ponieważ gra odtwarza się w oddzielnym " "procesie." -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 #, fuzzy msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" "Na górnym pasku narzędzi znajduje się również menu do zdalnego debugowania. " "Opcje te ułatwia przesłanie gry na urządzenie (telefon, tablet lub " "przeglądarka poprzez HTML5) i edycję debugowania/edycji na żywo po " "wyeksportowaniu gry." -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "System sceny" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 #, fuzzy msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" "Jest to najważniejsza różnica pomiędzy Unity i Godotem, a ulubioną cechą " "większości użytkowników Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 #, fuzzy msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" "System sceny Unity polega na osadzeniu wszystkich wymaganych zasobów w " "scenie i połączeniu ich poprzez ustawienie komponentów i skryptów." -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 #, fuzzy msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" "System scen Godota jest inny: w rzeczywistości składa się z drzewa " "zbudowanego z węzłów. Każdy węzeł spełnia swoją rolę: Sprite, Mesh, Light... " @@ -10864,7 +10909,7 @@ msgstr "" "podsceną sceny głównej. Oznacza to, że można utworzyć całą scenę z różnymi " "scenami, przechowywaną w różnych plikach." -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" @@ -10872,23 +10917,23 @@ msgstr "" "Na przykład, pomyśl o poziomie z gry platformowej. Można go skomponować z " "wielu elementów:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "Cegły" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "Monety" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "Gracz" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "Wrogowie" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 #, fuzzy msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " @@ -10904,57 +10949,65 @@ msgstr "" "aby je połączyć: na przykład do wszystkich elementów sceny można dodać " "BoxCollider2D, aby mogły się zderzać. Zasada ta jest odmienna u Godota." -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 +#, fuzzy msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." msgstr "" "W Godot podzieliłbyś całą scenę na 3 mniejsze, oddzielne sceny, które można " "by potem były instancjowane w głównej scenie." -#: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#, fuzzy +msgid "**A scene for the Player alone.**" msgstr "** Po pierwsze, scena dla gracza.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#: ../../docs/getting_started/editor/unity_to_godot.rst:115 +#, fuzzy msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" "Rozważ również gracza jako element wielokrotnego użytku na innych poziomach. " "Składa się on w szczególności z jednego węzła: węzła AnimatedSprite, który " "zawiera teksturę sprite, tworzącą różne animacje (na przykład animację " "chodzenia)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#, fuzzy +msgid "**A scene for the Enemy.**" msgstr "**Po drugie, scena dla wrogów.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 +#, fuzzy msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" "Również wróg jest elementem wielokrotnego użytku na innych poziomach. Jest " "prawie taki sam jak węzeł gracza - jedyną różnicą jest skrypt (który " "zarządza głównie sztuczną inteligencją) i sprity używane przez " "AnimatedSprite." -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +#, fuzzy +msgid "**A Level scene.**" msgstr "**Na koniec, scena poziomu**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 #, fuzzy msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" "Składa się z Cegieł (platformy), Monet (zbieranych przez gracza) i pewnej " "liczby instancji sceny wroga. Będą to wrogowie, których zachowanie i wygląd " @@ -10962,10 +11015,11 @@ msgstr "" "traktowana jako węzeł w drzewie sceny Level. Oczywiście możesz ustawić różne " "właściwości dla każdego węzła wroga (na przykład zmienić jego kolor)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 +#, fuzzy msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " @@ -10978,7 +11032,7 @@ msgstr "" "związanych z 2D), \"Spatial\" (typ root wszystkich węzłów związanych z 3D) " "lub \"Control\" (typ root wszystkich węzłów związanych z GUI)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 #, fuzzy msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " @@ -10995,102 +11049,91 @@ msgstr "" "zależności od zastosowania (patrz: :ref:`Fizyka Podstawy " "`)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" -"Są to najważniejsze pojęcia, o których należy pamiętać: \"węzeł\", \"węzeł " -"rodzicielski\" i \"węzeł dziecięcy\"." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "Organizacja projektu" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -"Wcześniej zauważyliśmy, że nie ma idealnego rozwiązania dla architektury " -"projektu. Każde rozwiązanie będzie działało na Unity i Godocie, więc ten " -"punkt ma mniejsze znaczenie." -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 +#, fuzzy msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" "Często jednak obserwujemy wspólną hierarchię plików w projekcie w Unity, " "która polega na tym, że w katalogu głównym znajduje się jeden folder Assets " "zawierający różne foldery, jeden według rodzaju zasobów: Dźwięk, Grafika, " "Modele, Materiały, Skrypty, Sceny itp." -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 +#, fuzzy msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" "Jak opisano powyżej, system sceny Godota umożliwia dzielenie scen na " "mniejsze sceny. Ponieważ każda scena i podscena to w rzeczywistości jeden " "plik sceny w projekcie, zalecamy zorganizowanie projektu nieco inaczej :ref:" "`doc_project_organization`." -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "Gdzie są moje prefaby?" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 +#, fuzzy msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" "Koncepcja prefabów w Unity, który jest \"szablonem\" elementów na scenie. " "Można go ponownie wykorzystać, a każda instancja istnieje oddzielnie, ale " "wszystkie mają te same właściwości, co prefab." -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 #, fuzzy msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" "Godot nie dostarcza prefabów jako takich, ale ta funkcjonalność jest tu " "wypełniona dzięki systemowi scen: Jak widzieliśmy jest zorganizowany jako " @@ -11100,16 +11143,17 @@ msgstr "" "oddzielnej scenie zostaną zastosowane w jej instancjach. Jednak jakakolwiek " "zmiana w instancji nie będzie miała żadnego wpływu na scenę \"szablonu\"." -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 +#, fuzzy msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" "Precyzyjnie rzecz ujmując, można modyfikować parametry instancji w panelu " "Inspektor. Węzły składające się na tę instancję są jednak zablokowane, ale " @@ -11120,39 +11164,40 @@ msgstr "" "chcesz dodać nowe dzieci do wszystkich instancji sceny \"szablonu\", musisz " "dodać je do sceny \"szablonu\"." -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "Pisanie skryptów GDScript, C# i Visual Script" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "Wygląd" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#, fuzzy msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" "Jak być może już wiesz, Unity obsługuje C#. C# czerpie korzyści z integracji " "z Visual Studio i innymi funkcjami, takimi jak statyczne typowanie." -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 #, fuzzy msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " @@ -11160,9 +11205,9 @@ msgid "" "visual_script>` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" "Godot zapewnia swój własny język skryptowy, :ref:`GDScript ` " "oraz wsparcie dla :ref:`Visual Script ` " @@ -11173,7 +11218,7 @@ msgstr "" "potrwa to od jednego wieczoru dla doświadczonego programisty do tygodnia dla " "początkującego." -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -11185,7 +11230,7 @@ msgstr "" "tak, aby reagował na sterowanie gracza, oraz skrypt, który kontroluje jego " "logikę gry." -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -11197,7 +11242,7 @@ msgstr "" "dołączyć więcej skryptów do jednego węzła, możesz rozważyć dwa rozwiązania, " "w zależności od sceny i tego, co chcesz osiągnąć:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." @@ -11205,7 +11250,7 @@ msgstr "" "Dodaj nowy węzeł pomiędzy węzłem docelowym a jego bieżącym węzłem " "macierzystym, a następnie dodaj skrypt do tego nowego węzła." -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 #, fuzzy msgid "" "or, you can split your target node into multiple children and attach one " @@ -11214,22 +11259,22 @@ msgstr "" "lub, możesz podzielić swój węzeł docelowy na kilka dzieci i dołączyć po " "jednym skrypcie do każdego z nich." -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#, fuzzy msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" "Jak widać, łatwo jest zmienić drzewo sceny w bałagan. Dlatego ważne jest, " "aby mieć rozważyć podzielenie skomplikowanej sceny na wiele mniejszych " "gałęzi." -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 #, fuzzy msgid "Connections: groups and signals" msgstr "Połączenia : grupy i sygnały" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 #, fuzzy msgid "" "You can control nodes by accessing them via script and calling built-in or " @@ -11243,7 +11288,7 @@ msgstr "" "wszystkich węzłach znajdujących się w tej grupie! Jest to wyjaśnione w :ref:" "`tej stronie `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 #, fuzzy msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " @@ -11257,28 +11302,28 @@ msgstr "" "dowolnym czasie. Ta cecha jest udokumentowana `tutaj <../scripting/gdscript/" "gdscript_basics.html#signals>`_." -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Animacja Sprita" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -11287,7 +11332,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -11296,11 +11341,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "Używanie C++ w Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 #, fuzzy msgid "" "Godot allows you to develop your project directly in C++ by using its API, " @@ -11313,7 +11358,7 @@ msgstr "" "przykład, można rozważyć edytor Godot Engine jako \"grę\" napisaną w C++ za " "pomocą Godot API." -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -13684,11 +13729,18 @@ msgstr "" "uruchamiały się wewnątrz edytora (o ile nie uruchamiają kodu gry). W tym " "celu istnieje słowo kluczowe ``tool`` i musi być umieszczone na górze pliku:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "Zarządzanie pamięcią" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -13706,67 +13758,129 @@ msgstr "" "celu uniknięcia pętli odniesień, które nie mogą być zwolnione, do tworzenia " "słabych referencji służy funkcja ``weakref``." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -13776,29 +13890,29 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "Wyświetli:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" "Możliwe jest również np. przekazywanie wartości pomiędzy yield() a resume():" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "Współprogramy i sygnały" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 msgid "" "Coroutines themselves use the ``completed`` signal when they transition into " "an invalid state, for example:" @@ -13806,17 +13920,17 @@ msgstr "" "Współprogramy używają sygnału ``completed`` np. gdy przechodzą w stan " "niepoprawny:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 #, fuzzy msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "``my_func`` będzie kontynuowany dopiero po naciśnięciu obu przycisków." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "Słowo kluczowe onready" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -13824,7 +13938,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -13832,11 +13946,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "Słowo kluczowe assert" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -14453,7 +14567,7 @@ msgid "**NEVER**:" msgstr "**NIGDY**:" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 #, fuzzy msgid "Naming conventions" msgstr "Konwencje nazewnictwa" @@ -16858,7 +16972,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "Przykład" @@ -17853,11 +17967,11 @@ msgid "Language specification" msgstr "Specyfikacja języka" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 +#, fuzzy msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" "Obecnie Godot używa C# wersji 6.0 w swoim silniku i przykładowym kodzie " "źródłowym. Tak więc, zanim przejdziemy do nowszej wersji, należy uważać, aby " @@ -17881,183 +17995,186 @@ msgid "Formatting conventions" msgstr "Konwencje nazewnictwa" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +#, fuzzy +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" "Podczas tworzenia nowego pliku upewnij się, że do łamania linii użyto znaków " "Linefeed (*LF*), a nie *CRLF* lub *CR*." #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 +#, fuzzy msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "Użyj 4 spacji zamiast tabulacji (nazywanymi 'miękkimi tabulatorami')." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 #, fuzzy msgid "Line breaks and blank lines" msgstr "Łamacz linii i puste linie" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 #, fuzzy msgid "Insert a blank line:" msgstr "Wstaw pustą linię," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#, fuzzy +msgid "After a list of ``using`` statements." msgstr "Po *użyciu* listy poleceń." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 msgid "Between method, properties, and inner type declarations." msgstr "Pomiędzy funkcjami, właściwościami i deklaracjami typów." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 #, fuzzy msgid "At the end of each file." msgstr "Dodaj plik cpp." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 #, fuzzy msgid "Avoid inserting a blank line:" msgstr "Unikaj wstawiania pustej linii," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 #, fuzzy msgid "After ``{``, the opening brace." msgstr "Po nawiasie otwierającym ('{')." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 #, fuzzy msgid "Before ``}``, the closing brace." msgstr "Przed zamykającym nawiasem ('}')." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#, fuzzy +msgid "After a comment block or a single-line comment." msgstr "Po bloku komentarzy lub komentarzu jednowierszowym." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "Sąsiaduje z inną pustą linią." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 #, fuzzy msgid "Using spaces" msgstr "Używanie spacji" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 #, fuzzy msgid "Insert a space:" msgstr "W" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "Wokół operatora dwu- i trzyargumentowego." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#, fuzzy msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" "Pomiędzy otwierającym nawiasem a słowami kluczowymi *if*, *for*, *foreach*, " "*catch*, *while*, *lock* lub *using*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "Po przecinku." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#, fuzzy +msgid "After a semicolon in a ``for`` statement." msgstr "Po średniku w instrukcji *for*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#, fuzzy +msgid "After a colon in a single line ``case`` statement." msgstr "Po dwukropku w pojedynczym wierszu *case*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "Wokół dwukropka w deklaracji typu." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "Wokół strzałki lambda." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 +#, fuzzy msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" "Po symbolu komentarza jednowierszowego (\"//\"), a przed nim, jeśli jest " "używany na końcu wiersza." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 #, fuzzy msgid "Do not use a space:" msgstr "Nie należy używać spacji," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 #, fuzzy msgid "After type cast parentheses." msgstr "Po nawiasach typu rzutowania." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 #, fuzzy msgid "" "The following example shows a proper use of spaces, according to some of the " @@ -18066,112 +18183,116 @@ msgstr "" "Poniższy przykład pokazuje właściwe wykorzystanie spacji, zgodnie z " "niektórymi z w/w konwencji:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" "Na koniec należy rozważyć wybór nazw i nie próbować ich zbytnio skracać." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 #, fuzzy msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" "Na przykład, jeśli chcesz napisać kod, potrafiący znaleźć pobliskiego wroga " "i trafić bronią, wolisz" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" msgstr "Zamiast tego," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 #, fuzzy msgid "Other considerations" msgstr "Inne opcje budowania" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "Użyj właściwości zamiast pól nieprywatnych." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#, fuzzy +msgid "Remove unused ``using`` statements and unnecessary parentheses." msgstr "Usuń nieużywane instrukcje *'using'* i niepotrzebne nawiasy." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -21440,92 +21561,98 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 #, fuzzy msgid "Steps to link a Godot project folder to Xcode" msgstr "Kroki by połączyć folder projektu Godota z Xcode" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "Wejdź w folder **godot_project_to_export** w menedżerze plików Xcode." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "Usuń **exported_xcode_project_name.pck** z projektu Xcode." -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "Usługi dla iOS" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -29063,18 +29190,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -29082,11 +29225,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -29096,11 +29239,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Głębia" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -29109,34 +29252,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -29144,33 +29287,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "UV1 i UV2" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -29178,17 +29321,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -29197,17 +29340,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -29329,7 +29472,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -29747,7 +29891,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -29823,13 +29967,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -29838,31 +29989,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Głównymi przyczynami są:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -29870,64 +30021,64 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 #, fuzzy msgid "Adding lights" msgstr "Dodawanie wektorów" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -29935,82 +30086,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "Jakość" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -30622,7 +30773,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -30630,28 +30781,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -30661,7 +30812,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -30671,58 +30822,58 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 #, fuzzy msgid "Mid- and post-processing effects" msgstr "Środowisko i post-processing" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -30731,7 +30882,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -30739,52 +30890,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -30794,28 +30945,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -30823,47 +30974,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -30872,59 +31023,59 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" @@ -30932,7 +31083,7 @@ msgstr "" "Domyślnie, nawet jeśli efekt jest włączony, będzie słaby lub niewidoczny. " "Jeden z dwóch warunków musi się spełnić, by się pojawił:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -30942,27 +31093,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -30970,78 +31121,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -32393,11 +32544,11 @@ msgstr "" "Zaprogramujmy gracza dodając możliwość poruszania się, rozglądania się myszą " "i skakania. Dodaj następujący kod do ``Player.gd``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "Jest to dużo kodu, więc rozbijmy go według funkcji:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " @@ -32407,14 +32558,14 @@ msgstr "" "się wiele nauczyć, ręcznie przepisując kod, ale można skopiować i wkleić kod " "z tej strony bezpośrednio do edytora skryptów." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" "Jeśli to zrobisz, cały skopiowany kod będzie używał spacji zamiast " "tabulatorów." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -32422,7 +32573,7 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." @@ -32430,38 +32581,38 @@ msgstr "" "Po pierwsze, definiujemy pewne zmienne w klasie, aby zdecydować, jak nasz " "gracz będzie poruszał się po świecie." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 #, fuzzy msgid "Let's go through each of the class variables:" msgstr "Przejrzyjmy każdą ze zmiennych globalnych:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 #, fuzzy msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "``GRAV``: Jak mocno grawitacja ciągnie nas w dół." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "``vel``: Nasza prędkość :ref:`KinematicBody `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "``MAX_SPEED``: Największa prędkość z jaką możemy się poruszać." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "``JUMP_SPEED``: Jak wysoko można skoczyć." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 #, fuzzy msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " @@ -32470,7 +32621,7 @@ msgstr "" "``ACCEL``: Jak szybko będzie przyspieszać. Wyższa wartość, zmniejszy czas do " "osiągnięcia maksymalnej prędkości." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 #, fuzzy msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " @@ -32479,7 +32630,7 @@ msgstr "" "``DEACCEL``: Określa jak szybko będziemy zwalniać. Większa wartość pozwoli " "szybciej zatrzymać się." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." @@ -32487,17 +32638,17 @@ msgstr "" "``MAX_SLOPE_ANGLE``: Największy kąt jaki przez :ref:`KinematicBody " "` będzie uważany za 'podłogę'." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "``camera``: Węzeł :ref:`Camera `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " @@ -32507,14 +32658,14 @@ msgstr "" "odpowiednia dla mojej myszy, lecz prawdopodobnie będziesz musiał dostosować " "tą wartość do siebie." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 #, fuzzy msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " @@ -32523,7 +32674,7 @@ msgstr "" "Być może zauważyłeś, że ``MOUSE_SENSITIVITY`` jest napisane wielkimi " "literami jak inne stałe, lecz ``MOUSE_SENSITIVITY`` nie jest stałą." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -32536,11 +32687,11 @@ msgstr "" "późniejszej zmiany wartości po dodaniu ustawień konfigurowalnych. Więc, aby " "przypomnieć sobie, aby traktować go jak stałą, to nazywa jak zwykłe stałe." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "Spójrzmy teraz na funkcję ``ready``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." @@ -32548,7 +32699,7 @@ msgstr "" "Najpierw wczytujemy węzły(node) ``camera`` i ``rotation_helper`` i " "zapisujemy je do zmiennych." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 #, fuzzy msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " @@ -32557,7 +32708,7 @@ msgstr "" "Następnie musimy ustawić tryb pracy myszy tak, aby mysz nie mogła opuścić " "okna gry." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 #, fuzzy msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " @@ -32568,7 +32719,7 @@ msgstr "" "Pierwszym powodem jest to, że nie chcemy, aby gracz widział kursor myszy " "podczas gry." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 #, fuzzy msgid "" "The second reason is because we do not want the cursor to leave the game " @@ -32581,7 +32732,7 @@ msgstr "" "poza oknem, a wtedy gra przestanie być aktywnym oknem. Aby zapewnić, że " "żaden z tych problemów nie wystąpi, przechwytujemy kursor myszy." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " @@ -32591,11 +32742,11 @@ msgstr "" "Będziemy używali jedynie ``MOUSE_MODE_CAPTURED`` i ``MOUSE_MODE_VISIBLE`` w " "tym poradniku." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "Następnie przyjrzyjmy się ``_physics_process``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." @@ -32603,14 +32754,14 @@ msgstr "" "Wszystko co robimy w ``_physics_process`` to wywoływanie dwóch funkcji: " "``process_input`` i ``process_movement``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 #, fuzzy msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" @@ -32620,17 +32771,17 @@ msgstr "" "`KinematicBody `, dzięki temu będzie można przemierzać " "świat gry." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 #, fuzzy msgid "Let's look at ``process_input`` next:" msgstr "Spójrzmy na ``process_movement``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" "Najpierw ustawiamy ``dir`` na pusty wektor :ref:`Vector3 `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " @@ -32641,34 +32792,34 @@ msgstr "" "następstwa dla kolejnych ``process_movement``, więc będziemy resetować " "``dir``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." @@ -32676,31 +32827,31 @@ msgstr "" "W Godocie, środek jest na pozycji ``(0, 0, 0)`` z rotacją ``(0, 0, 0)`` i " "skalą ``(1, 1, 1) ``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "Oto jak wygląda przestrzeń w 2D:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" @@ -32708,12 +32859,12 @@ msgstr "" "Poniższe ilustracje są tylko przykładami. Każda strzałka/prostokąt " "reprezentuje wektor kierunkowy" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "I tak to wygląda w przypadku 3D:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -32721,13 +32872,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "Przestrzeń lokalna jest inna, ponieważ uwzględnia rotację obiektu." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -32735,34 +32886,34 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 #, fuzzy msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " @@ -32771,11 +32922,11 @@ msgstr "" "Aby użyć lokalnego wektora kierunkowego węzła a:ref:`Spatial " "`, używamy tego kodu:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "Oto jak wygląda lokalna przestrzeń w 2D:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -32783,14 +32934,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -32799,37 +32950,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "Dobrze, wróć do ``process_input``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -32837,7 +32988,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -32846,7 +32997,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -32854,7 +33005,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -32862,12 +33013,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -32875,30 +33026,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -32906,30 +33057,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -32937,14 +33088,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -32952,46 +33103,46 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." @@ -32999,7 +33150,7 @@ msgstr "" "Następnie obracamy :ref:`KinematicBody `na osi ``Y`` o " "względną wartość ruchu myszy ``X``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " @@ -33009,7 +33160,7 @@ msgstr "" "ruch myszy w górę i w dół to ``1`` i ``-1``. Ruch w prawo i w lewo wynosi " "odpowiednio ``1`` i ``-1``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " @@ -33019,7 +33170,7 @@ msgstr "" "wartość ``X`` przez ``-1`` tak, że ruch myszy w lewo i w prawo obraca gracza " "w lewo i w prawo w tym samym kierunku." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " @@ -33028,7 +33179,7 @@ msgstr "" "Na koniec, w ``rotation_helper`` wartość obrotu osi ``X`` zawieramy pomiędzy " "``-70`` i``70`` stopni tak, aby gracz nie mógł obracać się do góry nogami." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 #, fuzzy msgid "" "See :ref:`using transforms ` for more information on " @@ -33037,7 +33188,7 @@ msgstr "" "zobacz :ref:`używanie przekształceń ` aby uzyskać " "więcej informacji na temat rotacji." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 #, fuzzy msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " @@ -33049,7 +33200,7 @@ msgstr "" "przez kilka kolejnych części samouczka, więc upewnij się, że jest ona " "otwarta w jednej z zakładek." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 #, fuzzy msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." @@ -33062,11 +33213,11 @@ msgstr "" "w prawym górnym rogu lub naciskając przycisk ``F6``. Teraz powinieneś być w " "stanie chodzić, skakać i rozglądać się za pomocą myszy." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "Danie graczowi latarki oraz opcji sprintu" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 #, fuzzy msgid "" "Before we get to making the weapons work, there are a couple more things we " @@ -33074,7 +33225,7 @@ msgid "" msgstr "" "Zanim rozpoczniemy pracę z bronią, powinniśmy dodać jeszcze kilka rzeczy." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" @@ -33082,19 +33233,19 @@ msgstr "" "Wiele gier FPS ma możliwość sprintu i latarkę. Możemy je łatwo dodać do " "naszego gracza, więc zróbmy to!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" "Najpierw w naszym skrypcie gracza potrzebujemy kilku dodatkowych zmiennych " "klasy:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " @@ -33104,7 +33255,7 @@ msgstr "" "chwili, a ``flashlight`` jest zmienną, której będziemy używać do trzymania " "węzła światła." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" @@ -33112,7 +33263,7 @@ msgstr "" "Teraz musimy dodać kilka wierszy kodu, zaczynając od ``_ready``. Do " "``_ready`` dodaj następujący tekst:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 #, fuzzy msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " @@ -33121,7 +33272,7 @@ msgstr "" "Powoduje to utworzenie węzła lampy i przypisanie jej do zmiennej " "``flashlight`." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" @@ -33129,11 +33280,11 @@ msgstr "" "Teraz musimy zmienić część kodu w ``process_input``. dodaj go gdzieś w " "``process_input``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "Przejdźmy do dodatków:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -33146,7 +33297,7 @@ msgstr "" "Do ``process_movement`` dodamy kod, który przyspiesza bieg gracza podczas " "sprintu. Tutaj w ``process_input`` zmienimy tylko zmienną ``is_sprinting``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -33154,7 +33305,7 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" @@ -33162,7 +33313,7 @@ msgstr "" "Teraz musimy zmienić kilka rzeczy w ``process_movement``. Po pierwsze, " "zastąp ``target *= MAX_SPEED`` przez:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " @@ -33172,7 +33323,7 @@ msgstr "" "sprawdzamy, czy gracz biega czy nie. Jeśli gracz biega, mnożymy ``target`` " "przez `MAX_SPRINT_SPEED``." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 #, fuzzy msgid "" "Now all that's left is to change the acceleration when sprinting. Change " @@ -33181,7 +33332,7 @@ msgstr "" "Teraz wystarczy tylko zmienić przyspieszenie podczas biegu. Zmień ``accel = " "ACCEL`` na następujące:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 #, fuzzy msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " @@ -33190,7 +33341,7 @@ msgstr "" "Teraz, kiedy gracz biega, będziemy używać ``SPRINT_ACCEL`` zamiast " "``ACCEL``, co przyspieszy gracza szybciej." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" @@ -33198,7 +33349,7 @@ msgstr "" "Należy teraz być w stanie zacząć bieg po naciśnięciu przycisku ``shift`` i " "móc włączyć lub wyłączyć lampę błyskową, naciskając przycisk ``F``!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 #, fuzzy msgid "" "Go try it out! You can change the sprint-related class variables to make the " @@ -33207,7 +33358,7 @@ msgstr "" "Możesz zmienić zmienne klasy związane z biegiem tak, aby gracz był szybszy " "lub wolniejszy podczas sprintu!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -33217,7 +33368,7 @@ msgstr "" msgid "Final notes" msgstr "Uwagi końcowe" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 #, fuzzy msgid "" "Whew! That was a lot of work. Now you have a fully working first person " @@ -33226,20 +33377,20 @@ msgstr "" "Uff! To było dużo pracy. Masz teraz w pełni działającą postać z widokiem " "pierwszoosobowym!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" "W :ref:`doc_fps_tutorial_part_two` dodamy kilka broni do naszego gracza." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " @@ -33249,7 +33400,7 @@ msgstr "" "pierwszoosobowych. Na przykład: horrorów, gier platformowych, gier " "przygodowych i wiele innych!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -33259,7 +33410,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "Jeśli kiedykolwiek się zagubisz, przeczytaj kod ponownie!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -40883,7 +41034,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -40894,99 +41045,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -40994,11 +41145,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -41009,26 +41160,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -41037,7 +41188,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -41840,7 +41991,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "Przykłady" @@ -47672,10 +47823,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "Umiędzynarodowienie" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "Umiędzynarodowianie gier" @@ -56429,7 +56576,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -67543,6 +67690,11 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +#, fuzzy +msgid "You can achieve the same result in code:" +msgstr "Możesz sprawdzić listę wszystkich zdalnych serwerów z:" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -67553,52 +67705,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "Są możliwe 3 stany węzłów:" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "I to wszystko!" @@ -69478,9 +69630,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -69511,7 +69663,7 @@ msgstr "Obce narzędzia" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -69540,7 +69692,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -69564,9 +69716,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -69973,7 +70125,7 @@ msgid "`SCons `__ build system." msgstr "System budowania `SCons `__." #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -70262,7 +70414,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -70423,17 +70575,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "**Arch**" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "**Debian** / **Ubuntu**" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "**Fedora**" @@ -70442,7 +70593,7 @@ msgid "**macOS**" msgstr "**macOS**" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "**Mageia**" @@ -70515,7 +70666,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -70546,13 +70697,13 @@ msgid "GCC or Clang" msgstr "GCC lub Clang" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" -msgstr "Python 2.7+ (Python 3 wspierany tylko razem z SCons 3.0)" +#, fuzzy +msgid "Python 3 or 2.7+" +msgstr "Python 2.7+ lub Python 3.5+" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" -msgstr "System buildów SCons" +msgid "SCons build system (3.0 or later for Python 3)" +msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 msgid "pkg-config (used to detect the dependencies below)" @@ -70571,57 +70722,55 @@ msgid "ALSA development libraries" msgstr "ALSA development libraries" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" -msgstr "PulseAudio development libraries (dla wsparcia dźwięku)" +#, fuzzy +msgid "PulseAudio development libraries" +msgstr "ALSA development libraries" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "Freetype (dla edytora)" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "OpenSSL (dla HTTPS i TLS)" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "*Opcjonalne* - libudev (budowane z ``udev=yes``)" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "*Opcjonalne* - yasm (dla opymalizacji WebM SIMD)" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#, fuzzy +msgid "**Arch Linux**" +msgstr "**Arch**" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "**FreeBSD**" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "**Gentoo**" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "**OpenBSD**" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "**openSUSE**" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "**Solus**" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -70629,7 +70778,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -70637,59 +70786,68 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" "Jeśli chcesz możesz skompilować to używając Clang zamiast GCC, używając " "następujących komend:" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "(32 bity)" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "(64 bity)" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 +#: ../../docs/development/compiling/compiling_for_x11.rst:138 msgid "" -"Note that cross compiling for the opposite bits (64/32) as your host " +"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:138 +#: ../../docs/development/compiling/compiling_for_x11.rst:141 msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -70701,6 +70859,10 @@ msgstr "Kompilacja dla OSX" msgid "Python 2.7+ or Python 3.5+" msgstr "Python 2.7+ lub Python 3.5+" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "System buildów SCons" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "Xcode (albo lżejsza)" @@ -71616,7 +71778,6 @@ msgid "MSBuild" msgstr "MSBuild" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -71624,19 +71785,19 @@ msgstr "" msgid "pkg-config" msgstr "pkg-config" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 #, fuzzy msgid "Environment variables" msgstr "Zmienne środowiskowe" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -71644,29 +71805,29 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 #, fuzzy msgid "Enable the Mono module" msgstr "Odblokowanie modułu Mono" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 #, fuzzy msgid "Generate the glue" msgstr "Tworzenie \"kleju\"(Glue)" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -71674,21 +71835,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -71699,12 +71860,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "Uwagi" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -71712,7 +71873,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -71721,29 +71882,29 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 #, fuzzy msgid "And Mono-enabled export templates:" msgstr "Używanie szablonów eksportu" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -71753,7 +71914,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -71763,20 +71924,20 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "Przykład (Windows)" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 #, fuzzy msgid "Example (X11)" msgstr "Przykład (x11)" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -71785,7 +71946,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -71793,14 +71954,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -71809,58 +71970,58 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 #, fuzzy msgid "``Mono`` (optional)" msgstr "Postęp ładowania (opcjonalny)" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -71871,7 +72032,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -71881,55 +72042,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Eksportowanie na Androida" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -71938,66 +72099,66 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 #, fuzzy msgid "Command-line options" msgstr "Linia komend" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -72131,7 +72292,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 #, fuzzy msgid "Compiling with script encryption key" msgstr "Kompilowanie z Mono" @@ -78297,6 +78458,67 @@ msgstr "" "`Zeef Godot Engine: Prowadzony przez Andre Schmitza katalog zasobów `_" +#~ msgid "" +#~ ":ref:`Animating thousands of fish with MultiMesh " +#~ "`" +#~ msgstr "" +#~ ":ref:`Animowanie tysięcy ryb za pomocą MultiMesh " +#~ "`" + +#~ msgid ":ref:`Advanced post-processing `" +#~ msgstr ":ref:`Zaawansowany post-processing `" + +#~ msgid "" +#~ ":ref:`Compiling with script encryption key " +#~ "`" +#~ msgstr "" +#~ ":ref:`Kompilowanie z użyciem klucza szyfrowania " +#~ "skryptu`" + +#~ msgid "" +#~ ":ref:`Binding to external libraries `" +#~ msgstr "" +#~ ":ref:`Dowiązania do zewnętrznych bibliotek " +#~ "`" + +#~ msgid "Killer features" +#~ msgstr "Wybitne elementy w programie" + +#~ msgid "" +#~ "Note that Godot editor allows you to dock each panel at the side of the " +#~ "scene editor you wish." +#~ msgstr "" +#~ "Zauważ, że edytor Godot umożliwia zadokowanie każdego panelu, po obu " +#~ "stronach edytora sceny." + +#~ msgid "" +#~ "These are the most important concepts you need to remember: \"node\", " +#~ "\"parent node\", and \"child node\"." +#~ msgstr "" +#~ "Są to najważniejsze pojęcia, o których należy pamiętać: \"węzeł\", " +#~ "\"węzeł rodzicielski\" i \"węzeł dziecięcy\"." + +#~ msgid "" +#~ "We previously observed that there is no perfect solution to set a project " +#~ "architecture. Any solution will work for Unity and Godot, so this point " +#~ "has a lesser importance." +#~ msgstr "" +#~ "Wcześniej zauważyliśmy, że nie ma idealnego rozwiązania dla architektury " +#~ "projektu. Każde rozwiązanie będzie działało na Unity i Godocie, więc ten " +#~ "punkt ma mniejsze znaczenie." + +#~ msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +#~ msgstr "Python 2.7+ (Python 3 wspierany tylko razem z SCons 3.0)" + +#~ msgid "PulseAudio development libraries (for sound support)" +#~ msgstr "PulseAudio development libraries (dla wsparcia dźwięku)" + +#~ msgid "Freetype (for the editor)" +#~ msgstr "Freetype (dla edytora)" + +#~ msgid "OpenSSL (for HTTPS and TLS)" +#~ msgstr "OpenSSL (dla HTTPS i TLS)" + #, fuzzy #~ msgid "" #~ "Consider breaking a line when it's longer than 100 characters. And it's " diff --git a/weblate/pt_BR.po b/weblate/pt_BR.po index 822a67efed..5493edca23 100644 --- a/weblate/pt_BR.po +++ b/weblate/pt_BR.po @@ -106,7 +106,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: Rarysson Guilherme \n" "Language-Team: Portuguese (Brazil) `_, quanto no canal ``#godotengine-doc`` no `irc." "freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "A documentação principal deste site está organizada nas seguintes seções:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Geral" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Começando" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutoriais" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Desenvolvimento" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Comunidade" @@ -1377,381 +1381,435 @@ msgstr "" "não são refletidos neste documento." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Novos tutoriais desde a versão 3.0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "Internacionalização" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Localização" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "Novos tutoriais desde a versão 3.0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Passo a passo" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`Sinais `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`Exportando `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Fluxo de trabalho do projeto" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +#, fuzzy +msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`Builds personalizadas para Android `" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "Boas práticas:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref: `Introdução `" -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref: `O que são as classes Godot `" -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organização de cenas `" -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref: `Cenas versus Scripts `" -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" +#: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Autoloads versus nós internos `" -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" +#: ../../docs/about/docs_changelog.rst:41 +#, fuzzy +msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Alternativa de nós `" -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Interfaces Godot `" -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Notificação Godot `" -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Preferências de dados `" -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Preferências de lógica `" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "Scripting" -#: ../../docs/about/docs_changelog.rst:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +#, fuzzy +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`GDscript tipado `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +#, fuzzy +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Luzes e sombras 2D `" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Malhas 2D`" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +#, fuzzy +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" ":ref:`Animando milhares de peixes com MultiMesh " "`" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +#, fuzzy +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Controlando milhares de peixes com Partículas " "`" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Física" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Sistema Ragdoll`" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animação" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Esqueletos 2D`" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Árvore de Animações `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Contêiners `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Janelas de exibição" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +#, fuzzy +msgid ":ref:`doc_viewport_as_texture`" msgstr "" ":ref:`Usando uma Janela de exibição (Viewport) como uma textura " "`" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Personalizar Pós-processo `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Sombreamento" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +#: ../../docs/about/docs_changelog.rst:91 +#, fuzzy +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introdução a shaders: água 2D e 3D (7 video-tutoriais) " "`" -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +#: ../../docs/about/docs_changelog.rst:92 +#, fuzzy +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migrando para a linguagem de shading da Godot " "`" -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr ":ref:`Pós-processo avançado `" +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "Funções e Variáveis" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "Sua Primeira Série Shader:" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" +#: ../../docs/about/docs_changelog.rst:96 +#, fuzzy +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`O que são shaders? `" -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" +#: ../../docs/about/docs_changelog.rst:97 +#, fuzzy +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" ":ref:`Seu primeiro shader de CanvasItem `" -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" +#: ../../docs/about/docs_changelog.rst:98 +#, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Seu primeiro shader Spatial `" -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" +#: ../../docs/about/docs_changelog.rst:99 +#, fuzzy +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Seu primeiro shader Spatial: Parte 2 `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:106 msgid "Shading Reference:" msgstr "Referência de sombreamento:" -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" msgstr ":ref:`Sombreamento `" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" msgstr ":ref:`Linguagem de sombreamento `" -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Shaders Spatial `" -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`Shaders de CanvasItem `" -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Sombreamento de partículas `" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:111 +#, fuzzy +msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Tutorial de iniciante de VR `" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Plataformas específicas" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Personalizando a página Web de exportação de HTML " "`" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Multi-threading" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +#, fuzzy +msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread APIs seguras`" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Otimização" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +#, fuzzy +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Utilizando MultiMesh `" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +#, fuzzy +msgid ":ref:`doc_using_servers`" msgstr ":ref:`Usando servidores `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Diversos" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +#, fuzzy +msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Consertando jitter e stutter `" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +#, fuzzy +msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Rodando código no editor `" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +#, fuzzy +msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Mudar cenas manualmente `" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +#, fuzzy +msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:'Diferenças entre GLES2 e GLES3 `" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Jurídico" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +#, fuzzy +msgid ":ref:`doc_complying_with_licenses`" msgstr "" ":ref:`Compilando com Licenças `" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "Compilando" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +#, fuzzy +msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`Otimizando uma build para tamanho `" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +#, fuzzy +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Compilando com a chave de encriptação de script " "`" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Desenvolvimento de Engine" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +#, fuzzy +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" ":ref:`Vinculação com bibliotecas externas " "`" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Criando conteúdo" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" msgstr ":ref:`Criando árvores `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Fazendo plugins para cena principal `" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +#, fuzzy +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Plugins de gizmo espacial `" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Criando plugins para Android `" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -2320,7 +2378,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2716,16 +2774,19 @@ msgstr "" "cena afetam todas as instâncias." #: ../../docs/getting_started/step_by_step/instancing.rst:107 +#, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "Você também pode ajustar instâncias individualmente. Configure o valor de " "quique de volta para ``0`` e então, na cena ``Main``, selecione uma das " "bolas instanciadas. Defina seu ``Bounce`` para ``1`` e pressione \"Rodar\"." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2741,14 +2802,14 @@ msgstr "" "permanecerá o mesmo. Pressionando o botão reverter vai restaurar a " "propriedade para o valor na cena salva." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Conclusão" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3673,11 +3734,12 @@ msgid "Groups" msgstr "Grupos" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:90 +#, fuzzy msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Grupos em Godot funcionam como tags que você pode encontrar em outros " "softwares. Nós podem ser adicionados a grupos, tantos quantos desejados por " @@ -3925,7 +3987,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "Apenas GDScript pode criar variáveis globais para cada script nomeado." #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5566,7 +5628,7 @@ msgstr "" "Começando por adicionar a nova função para ``Mob.gd``. ``queue_free()`` que " "excluirá o nó atual no final do quadro atual." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 msgid "" "Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` " "function, at the end." @@ -5574,7 +5636,7 @@ msgstr "" "Então, em ``Main.gd`` adicione uma nova linha dentro da função " "``_on_MobTimer_timeout()``, no final." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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 " @@ -5584,11 +5646,11 @@ msgstr "" "responder a qualquer sinal ``start_game`` emitido pelo nó ``HUD`` rodando " "sua função ``_on_start_game()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "Terminando" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -5599,12 +5661,12 @@ msgstr "" "experiência do jogo. Sinta-se livre para expandir a jogabilidade com suas " "próprias ideias." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "Plano de fundo" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5621,7 +5683,7 @@ msgstr "" "cor que goste e, com o mouse, altere as dimensões do ``ColorRect`` para que " "cubra a tela." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 msgid "" "You could also add a background image, if you have one, by using a " "``Sprite`` node." @@ -5629,11 +5691,11 @@ msgstr "" "Você também pode adicionar uma imagem de plano de fundo, se tiver uma, " "usando um nó ``Sprite``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "Efeitos sonoros" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5645,7 +5707,7 @@ msgstr "" "de áudio: \"House In a Forest Loop.ogg\" para música de fundo e \"gameover." "wav\" para quando o jogador perde." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5657,7 +5719,7 @@ msgstr "" "``SomDeMorte``. Em cada um, clique na propriedade ``Stream`` (\"fluxo\"), " "selecione \"Carregar\", e escolha o arquivo sonoro correspondente." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5665,15 +5727,15 @@ msgstr "" "Para reproduzir a música, adicione ``$Musica.play()``na função " "``new_game()`` e ``$Musica.stop()`` na função ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "Por fim, adicione ``$SomDeMorte.play()`` na função ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "Atalho do teclado" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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 " @@ -5683,7 +5745,7 @@ msgstr "" "pudéssemos iniciar o jogo pressionando uma tecla no teclado. Uma maneira de " "fazer isso é usando a propriedade \"Atalho\" do nó ``Button``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5699,7 +5761,7 @@ msgstr "" "digite o nome \"ui_select\". Este é o evento de entrada padrão associado à " "barra de espaço." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." @@ -5707,19 +5769,19 @@ msgstr "" "Agora, quando o botão iniciar aparecer, você pode clicar nele ou pressionar " "a barra de espaço para iniciar o jogo." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "Arquivos do projeto" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "Você pode encontrar uma versão finalizada deste projeto nestes locais:" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "https://github.com/kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -5829,7 +5891,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "Exportar modelos" @@ -6422,11 +6484,11 @@ msgstr "" "zero pelos colaboradores." #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 +#, fuzzy msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" "Qualquer um pode conectar ferramentas proprietárias para as necessidades de " "seus projetos - elas simplesmente não são enviadas com a engine. Isso pode " @@ -10365,7 +10427,7 @@ msgstr ":download:`robisplash_assets.zip `." #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -11931,69 +11993,76 @@ msgstr "" "usuário Unity, e procura te ajudar a migrar sua experiência em Unity para o " "mundo do Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "Diferenças" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 #, fuzzy msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licença" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" "Proprietário, código fechado, licença grátis com teto de rendimento e " "restrições de uso" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "Licença MIT, grátis e código totalmente aberto sem nenhuma restrição" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "OS (editor)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "Windows, macOS, Linux (não oficial e sem suporte)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "OS (exportar)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**Desktop:** Windows, mac OS, Linux" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**Dispositivos móveis:** Android, iOS, Windows Phone, Tizen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "**Web:** WebAssembly ou asm.js" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 #, fuzzy msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 #, fuzzy msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " @@ -12002,46 +12071,46 @@ msgstr "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "**TV:** Android TV, Samsung Smart TV, tvOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "**Desktop:** Windows, mac OS, X11" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "**Dispositivos móveis:** Android, iOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 #, fuzzy msgid "**Web:** WebAssembly" msgstr "**Web:** WebAssembly" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "**Console:** Ver :ref:`doc_consoles`" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 #, fuzzy msgid "**VR:** Oculus Rift, SteamVR" msgstr "**VR:** Oculus Rift, SteamVR" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "Sistema de cenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "Componente/Cena (GameObject > Component)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 #, fuzzy msgid "Prefabs" msgstr "Prefabs" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" @@ -12049,81 +12118,74 @@ msgstr "" ":ref:`Árvore de cenas e nós `, permitindo que cenas " "sejam aninhadas e/ou herdem outras cenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "Ferramentas de terceiros" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "Visual Studio ou VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr ":ref:`Editores externos são possíveis `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" ":ref:`Android SDK para exportação a Android `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" -msgstr "Recursos decisivos" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "Comunidade enorme" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "Grande armazém de recursos" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "Sistema de cenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "Depuração no dispositivo" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "O editor" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 +#, fuzzy msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" "A Godot Engine fornece um editor rico em recursos que lhe permitem construir " "seus jogos. As imagens abaixo exibem os dois editores com blocos coloridos " "para indicar funcionalidades comuns." -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" -"Note que o editor Godot permite você encaixar cada painel ao lado do editor " -"de cena da maneira que preferir." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 #, fuzzy msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" "Embora ambos os editores possam parecer semelhantes, há muitas diferenças " "por trás. Ambos permitem organizar o projeto usando o sistema de arquivos, " @@ -12132,26 +12194,27 @@ msgstr "" "contribui para a Godot ser muito mais amigável para sistemas VCS, como Git, " "Subversion ou Mercurial." -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 +#, fuzzy msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" "O painel Scene da Godot é semelhante ao painel Hierarquia da Unity, mas, " "como cada nó tem uma função específica, a abordagem usada pela Godot é mais " "visualmente descritiva. Em outras palavras, é mais fácil entender o que uma " "cena específica faz de relance." -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 +#, fuzzy msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" "O inspetor na Godot é mais minimalista e projetado para mostrar apenas " "propriedades. Graças a isso, os objetos podem exportar uma quantidade muito " @@ -12161,12 +12224,13 @@ msgstr "" "possível alterar cores, texturas, enumerações ou mesmo links para recursos " "em tempo real sem envolver código." -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 +#, fuzzy msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" "Finalmente, a barra de ferramentas na parte superior da tela é semelhante no " "sentido de permitir o controle da reprodução do projeto, mas os projetos na " @@ -12174,19 +12238,20 @@ msgstr "" "editor (mas a árvore e os objetos ainda podem ser explorados na janela do " "depurador)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 +#, fuzzy msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" "Esta abordagem tem a desvantagem de que o jogo em execução não pode ser " "explorado de diferentes ângulos (embora isso possa ser suportado no futuro e " "exibir dispositivos de colisão no jogo em execução já seja possível), mas em " "troca tem várias vantagens:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." @@ -12194,7 +12259,7 @@ msgstr "" "Executar o projeto e fechá-lo é rápido (A Unity precisa salvar, executar o " "projeto, fechar o projeto e, em seguida, recarregar o estado anterior)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -12206,51 +12271,55 @@ msgstr "" "sincronizadas) quando o jogo é fechado. Isso permite fluxos de trabalho " "fantásticos, como criar níveis enquanto você os reproduz." -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" "O editor é mais estável porque o jogo é executado em um processo separado." -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 +#, fuzzy msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" "Finalmente, a barra de ferramentas superior inclui um menu para depuração " "remota. Essas opções simplificam a implantação em um dispositivo (telefone " "conectado, tablet ou navegador via HTML5) e a edição de depuração / edição " "ao vivo após a exportação do jogo." -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "O sistema de cena" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 +#, fuzzy msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" "Esta é a diferença mais importante entre a Unity e a Godot, na verdade, a " "característica favorita da maioria dos usuários da Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 +#, fuzzy msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" "O sistema de cena da Unity consiste em incorporar todos os recursos " "necessários em uma cena e vinculá-los, definindo componentes e scripts para " "eles." -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 #, fuzzy msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" "O sistema de cena da Godot é diferente: na verdade consiste em uma árvore " "feita de nós. Cada nó serve a um propósito: Sprite, Malha, Luz, etc. " @@ -12259,7 +12328,7 @@ msgstr "" "Isso significa que você pode compor uma cena inteira com cenas diferentes " "armazenadas em arquivos diferentes." -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" @@ -12267,23 +12336,23 @@ msgstr "" "Por exemplo, pense em um nível de plataforma. Você poderia compor com vários " "elementos:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "Tijolos" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "Moedas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "O jogador" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "Os inimigos" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -12300,55 +12369,64 @@ msgstr "" "elementos da cena para que eles pudessem colidir. Este princípio é diferente " "na Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 +#, fuzzy msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." msgstr "" "Na Godot, você dividiria toda a sua cena em três cenas menores e menores, " "que você veria na cena principal." -#: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#, fuzzy +msgid "**A scene for the Player alone.**" msgstr "**Primeiro, uma cena para o Jogador sozinho.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#: ../../docs/getting_started/editor/unity_to_godot.rst:115 +#, fuzzy msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" "Considere o jogador como um elemento reutilizável em outros níveis. É " "composto de um nó em particular: um nó AnimatedSprite, que contém as " "texturas do sprite para formar várias animações (por exemplo, animação " "andando)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#, fuzzy +msgid "**A scene for the Enemy.**" msgstr "**Segundo, uma cena para o Inimigo.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 +#, fuzzy msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" "Novamente, um inimigo é um elemento reutilizável em outros níveis. É quase o " "mesmo que o nó do Player - as únicas diferenças são o script (que gerencia " "AI, principalmente) e as texturas de sprites usadas pelo AnimatedSprite." -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +#, fuzzy +msgid "**A Level scene.**" msgstr "**Por último, a cena do Nível.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 +#, fuzzy msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" "Ele é composto de Bricks (para plataformas), Coins (para o jogador pegar) e " "um certo número de instâncias da cena anterior do Inimigo. Estes serão " @@ -12357,10 +12435,11 @@ msgstr "" "nó na árvore de cena de Level. Naturalmente, você pode definir propriedades " "diferentes para cada nó do Inimigo (para alterar sua cor, por exemplo)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 +#, fuzzy msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " @@ -12373,7 +12452,7 @@ msgstr "" "\"Espacial\" (tipo raiz de todos os 3D- nós relacionados) ou \"Control" "\" (tipo de raiz de todos os nós relacionados à GUI)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 #, fuzzy msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " @@ -12390,36 +12469,37 @@ msgstr "" "colisão. Godot possui vários tipos de colisão, dependendo do uso (veja :ref:" "`Introdução à física `)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#, fuzzy msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" "Pergunta: Quais são as vantagens deste sistema? Esse sistema não aumentaria " "potencialmente a profundidade da árvore de cena? Além disso, a Unity permite " "organizar GameObjects colocando-os em GameObjects vazios." -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 +#, fuzzy msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" "Em primeiro lugar, este sistema está mais próximo do paradigma bem conhecido " "orientado a objetos: Godot fornece um número de nós que não são claramente " "\"Objetos de Jogo\", mas eles fornecem seus filhos com suas próprias " "capacidades: isto é herança." -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 #, fuzzy msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" "Segundo, permite a extração de uma sub-árvore de cena para torná-la uma cena " "própria, que responde à segunda e à terceira pergunta: mesmo que uma árvore " @@ -12429,48 +12509,36 @@ msgstr "" "vários nós em um GameObject vazio na Unity não oferece a mesma " "possibilidade, além de uma organização visual." -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" -"Estes são os conceitos mais importantes que você precisa lembrar: \"nó\", " -"\"nó pai\" e \"nó filho\"." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "Organização do projeto" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -"Observamos anteriormente que não há solução perfeita para definir uma " -"arquitetura de projeto. Qualquer solução funcionará para a Unity e Godot, " -"então este ponto tem uma importância menor." -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 #, fuzzy msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" "No entanto, frequentemente observamos uma arquitetura comum para projetos " "Unity, que consiste em ter uma pasta Assets no diretório raiz que contém " "várias pastas, uma por tipo de ativo: Áudio, Gráficos, Modelos, Materiais, " "Scripts, Cenas, etc." -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 +#, fuzzy msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" "Como descrito anteriormente, o sistema de cenas da Godot permite dividir as " "cenas em cenas menores. Como cada cena é uma sub-cena, na verdade, um " @@ -12478,32 +12546,33 @@ msgstr "" "maneira um pouco diferente. Este wiki fornece uma página para isto:: ref: " "`doc_project_organization`." -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "Onde estão meus prefabs?" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 +#, fuzzy msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" "O conceito de prefabs fornecido pela Unity é um elemento \"modelo\" da cena. " "É reutilizável, e cada instância do prefab que existe na cena tem uma " "existência própria, mas todas elas têm as mesmas propriedades definidas pelo " "prefab." -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 #, fuzzy msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" "Godot não fornece prefabs como tal, mas esta funcionalidade está aqui, " "novamente, preenchida graças ao seu sistema de cena: Como vimos, o sistema " @@ -12514,16 +12583,17 @@ msgstr "" "suas instâncias. No entanto, qualquer alteração feita na instância não terá " "impacto na cena \"modelo\"." -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 +#, fuzzy msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" "Para ser preciso, você pode modificar os parâmetros da instância no painel " "Inspetor. No entanto, os nós que compõem essa instância são bloqueados, " @@ -12534,40 +12604,41 @@ msgstr "" "cena \"modelo\". Se você quiser adicionar novos filhos a todas as instâncias " "da sua cena de 'modelo', você precisa adicioná-los na cena 'modelo'." -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "Correspondência do glossário" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "GameObject -> Nó" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "Adicionar um componente -> Herdar" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" -msgstr "Prefab -> Ramificação Externa" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "Scripting: GDScript, C # e Visual Script" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "Design" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#, fuzzy msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" "Como você já deve saber, a Unity suporta o C #. O C # se beneficia da " "integração com o Visual Studio e de outros recursos, como a digitação " "estática." -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 #, fuzzy msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " @@ -12575,9 +12646,9 @@ msgid "" "visual_script>` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" "Godot fornece sua própria linguagem de script, ref: `GDScript " "` bem como suporte para: ref: `Visual Script `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 #, fuzzy msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " @@ -12670,16 +12741,16 @@ msgstr "" "sempre que quiser. Esse recurso está documentado `here ` _." -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Animação por Sprites" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "O Unity pode manipular a serialização de scripts de duas maneiras:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." @@ -12687,7 +12758,7 @@ msgstr "" "Implícito: Todos os campos públicos em uma classe são automaticamente " "serializados se o tipo for serializável (``Dicionário`` não é serializável)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." @@ -12695,7 +12766,7 @@ msgstr "" "Explicito: Campos não públicos podem ser serializados usando o atributo " "``[SerializarCampo] ``." -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -12710,7 +12781,7 @@ msgstr "" "class_dictionary`) usando a palavra-chave `` export``. Veja a: ref: " "`documentação de exportações ` para detalhes." -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -12725,11 +12796,11 @@ msgstr "" "serializáveis personalizados. Mais informações sobre recursos podem ser " "encontradas: ref: `here `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "Usando Godot com C ++" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 #, fuzzy msgid "" "Godot allows you to develop your project directly in C++ by using its API, " @@ -12742,7 +12813,7 @@ msgstr "" "momento. Como exemplo, você pode considerar o editor do Godot Engine como um " "\"jogo\" escrito em C ++ usando a Godot API." -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -15313,11 +15384,18 @@ msgstr "" "manualmente de fazê-lo). Para isso, a palavra ``tool`` existe e deve ser " "colocada no topo do arquivo:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "Gerenciamento de memória" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -15335,7 +15413,7 @@ msgstr "" "instance.free (). Para evitar ciclos de referência que não podem ser " "liberados, uma função ``weakref`` é fornecida para criar referências fracas." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 msgid "" "Alternatively, when not using references, the " "``is_instance_valid(instance)`` can be used to check if an object has been " @@ -15345,82 +15423,134 @@ msgstr "" "is_instance_valid (instance) `` pode ser usado para verificar se um objeto " "foi liberado." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 +#, fuzzy msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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 "" "Sinais são um modo de enviar mensagens de notificação de um objeto para que " "outros objetos possam o ouvir de forma genérica. Crie sinais customizados " "para uma classe usando a palavra-chave ``signal``." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 +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:1490 #, fuzzy msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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 "" "Esses sinais podem ser conectados aos métodos da mesma forma com que você " "conecta sinais embutidos de nós como :ref:`class_Button` ou :ref:" "`class_RigidBody`." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1481 -#, fuzzy +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1493 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" -"Aqui está um exemplo que cria um sinal personalizado em um script e conecta " -"o sinal ao método em um script separado,, using o método :ref:`Object." -"connect() `:" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 +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:1514 +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:1556 +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:1559 +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:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 #, fuzzy msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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 "" "GDScript pode passar argumentos a conexões entre um sinal e um método. " "Quando o sinal é emitido, chamando o método conectado, o argumento é dado ao " "método. Esses argumentos são específicos" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1516 -#, fuzzy +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." -msgstr "Aqui está um exemplo que cria uma conexão entre um botão" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1531 -#, fuzzy -msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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 "" -"Sinais são gerados pelo método :ref:`Object.emit_signal() " -"` que broadcasts o sinal e argumentos." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1534 -#, fuzzy +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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 "" -"Extendendo um exemplo anterior para usar todas as características dos sinais " -"em GDScript." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "Corrotinas com yield" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 #, fuzzy msgid "" "GDScript offers support for `coroutines )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" "Use a codificação UTF-8 sem uma marca de ordem de byte (BOM )." #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 +#, fuzzy msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" "Use 4 espaços em vez de tabs para indentação (que é referido como \"tabs " "suaves\")." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 #, fuzzy msgid "Line breaks and blank lines" msgstr "Quebras de Linha e Linhas em Branco" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 +#, fuzzy msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" @@ -20171,42 +20308,43 @@ msgstr "" "chave associada a uma declaração de controle na próxima linha, recuada para " "a mesmo nível:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 #, fuzzy msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" "No entanto, você pode optar por omitir quebras de linha dentro de chaves," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "Para simples propriedades acessoras." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "Para inicializadores de simples objeto, array ou coleção." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "Para auto propriedade abstrata, indexador ou declarações de evento." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 #, fuzzy msgid "Insert a blank line:" msgstr "Inserira uma linha em branco," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#, fuzzy +msgid "After a list of ``using`` statements." msgstr "Depois de *usar* a lista de instruções." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 msgid "Between method, properties, and inner type declarations." msgstr "Entre o método, propriedades e declarações de tipo interno." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " @@ -20216,110 +20354,107 @@ msgstr "" "relevância. Nesse caso, considere inserir uma linha em branco entre os " "grupos para facilitar a leitura." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 #, fuzzy msgid "Avoid inserting a blank line:" msgstr "Evite inserir uma linha em branco," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 #, fuzzy msgid "After ``{``, the opening brace." msgstr "Depois de uma chave de abertura ('{')." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 #, fuzzy msgid "Before ``}``, the closing brace." msgstr "Antes de uma chave de fechamento ('}')." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#, fuzzy +msgid "After a comment block or a single-line comment." msgstr "Depois de um bloco de comentário ou um comentário de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "Adjacente a outra linha em branco." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 #, fuzzy msgid "Using spaces" msgstr "Usando Espaços" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 #, fuzzy msgid "Insert a space:" msgstr "Insira um espaço," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "Em torno de um operador binário e ternário." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#, fuzzy msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" "Entre um parêntese de abertura e as palavras-chave *se*, *para*, *foreach*, " "*catch*, *while*, *lock* ou *using*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "Antes e dentro de um bloco de acessador de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "Entre os acessadores em um bloco de acessador de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "Depois de uma vírgula." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#, fuzzy +msgid "After a semicolon in a ``for`` statement." msgstr "Depois de um ponto-e-vírgula em uma declaração *para*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#, fuzzy +msgid "After a colon in a single line ``case`` statement." msgstr "Depois de dois pontos em declaração *case* de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "Em torno de dois pontos em uma declaração de tipo." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "Em torno de uma seta lambda." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 +#, fuzzy msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" "Após um símbolo de comentário de linha única ('//') e antes, se usado no " "final de uma linha." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 #, fuzzy msgid "Do not use a space:" msgstr "Não use um espaço," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 #, fuzzy msgid "After type cast parentheses." msgstr "Depois de um parênteses de um tipo de conversão." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "Dentro de chaves de inicialização de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 #, fuzzy msgid "" "The following example shows a proper use of spaces, according to some of the " @@ -20328,52 +20463,56 @@ msgstr "" "O exemplo a seguir mostra um uso adequado dos espaços, de acordo com algumas " "das convenções mencionadas acima:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 +#, fuzzy msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" "Use *PascalCase* para todos os namespaces, nomes de tipos e identificadores " "de nível de membro (ou seja, métodos, propriedades, constantes, eventos), " "exceto para campos privados:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 +#, fuzzy msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" msgstr "" "Use *camelCase* para todos os outros identificadores (isto é, variáveis " "locais, argumentos de método) e use sublinhado ('_') como um prefixo para " "campos privados (mas não para métodos ou propriedades, como explicado acima):" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 #, fuzzy msgid "" "There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" "Há uma exceção com siglas que consistem em duas letras como *'UI'*, que " "devem ser escritas em letras maiúsculas quando usadas onde o PascalCase " "seria esperado, e em letras minúsculas, caso contrário." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#, fuzzy msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" "Note que *'id'* **não** é um acrônimo, então deve ser tratado como um " "identificador normal:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 #, fuzzy msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" "Geralmente é desencorajado usar um nome de tipo como um prefixo de um " "identificador como *'string strText'* ou *'float fPower'*, por exemplo. No " @@ -20381,7 +20520,7 @@ msgstr "" "nomeadas usando maiúsculas *'I'* como um prefixo, como *'IInventoryHolder'* " "ou *'IDamageable'*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." @@ -20389,27 +20528,29 @@ msgstr "" "Por último, considere a escolha de nomes descritivos e não tente encurtá-los " "demais se isso afetar a legibilidade." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 #, fuzzy msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" "Por exemplo, se você quiser escrever um código para encontrar um inimigo " "próximo e acertar com uma arma, prefira" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" msgstr "Ao invés de," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 #, fuzzy msgid "Implicitly typed local variables" msgstr "Variáveis Locais Tipadas Implicitamente" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 +#, fuzzy msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" @@ -20417,45 +20558,50 @@ msgstr "" "variável local, mas faça isso **somente quando o tipo for evidente** do lado " "direito da atribuição:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 #, fuzzy msgid "Other considerations" msgstr "Outras considerações" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "Use modificadores de acesso explícito." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "Use propriedades em vez de campos não privados." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 +#, fuzzy msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" "Use modificadores nesta ordem: *'public/protected/private/internal virtual/" "override/abstract/new static readonly'*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#, fuzzy msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" "Evite usar nomes completos ou o prefixo *'this'* para membros, quando não " "for necessário." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#, fuzzy +msgid "Remove unused ``using`` statements and unnecessary parentheses." msgstr "" "Remova as instruções *'using'* não utilizadas e parênteses desnecessários." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#, fuzzy +msgid "Consider omitting the default initial value for a type." msgstr "Considere omitir o valor inicial padrão de um tipo." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." @@ -20463,7 +20609,7 @@ msgstr "" "Considere usar operadores condicionais nulos ou digite inicializadores para " "tornar o código mais compacto." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -23993,91 +24139,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -31369,18 +31521,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -31388,11 +31556,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -31402,11 +31570,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Profundidade" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -31415,34 +31583,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -31450,33 +31618,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -31484,17 +31652,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -31503,17 +31671,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -31637,7 +31805,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -32054,7 +32223,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -32129,13 +32298,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -32144,31 +32320,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "As principais razões são:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -32176,64 +32352,64 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 #, fuzzy msgid "Adding lights" msgstr "Adicionando um script" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -32241,82 +32417,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -32924,7 +33100,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -32932,28 +33108,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -32963,7 +33139,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -32973,58 +33149,58 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 #, fuzzy msgid "Mid- and post-processing effects" msgstr "Funções e Variáveis" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -33033,7 +33209,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -33041,52 +33217,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -33096,28 +33272,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -33125,47 +33301,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -33174,65 +33350,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -33242,27 +33418,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -33270,78 +33446,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -34667,23 +34843,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -34691,90 +34867,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -34783,30 +34959,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -34814,121 +34990,121 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" "Primeiro, definimos ``dir`` como um :ref:`Vector3 ` vazio." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -34936,13 +35112,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -34950,44 +35126,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -34995,14 +35171,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -35011,37 +35187,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -35049,7 +35225,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -35058,7 +35234,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -35066,7 +35242,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -35074,12 +35250,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -35087,30 +35263,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -35118,30 +35294,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -35149,14 +35325,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -35164,86 +35340,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -35251,62 +35427,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -35315,7 +35491,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -35323,44 +35499,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -35370,32 +35546,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -35405,7 +35581,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -42784,7 +42960,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -42795,99 +42971,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -42895,11 +43071,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -42910,26 +43086,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -42938,7 +43114,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -43928,7 +44104,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "Exemplos" @@ -49634,10 +49810,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "Internacionalização" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -58324,7 +58496,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -69281,6 +69453,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -69291,52 +69467,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -71206,9 +71382,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -71239,7 +71415,7 @@ msgstr "Ferramentas de terceiros" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -71268,7 +71444,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -71292,9 +71468,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -71699,7 +71875,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -71985,7 +72161,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -72146,17 +72322,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -72165,7 +72340,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -72238,7 +72413,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -72267,12 +72442,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -72292,57 +72466,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -72350,7 +72520,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -72358,57 +72528,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -72419,6 +72598,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -73324,7 +73507,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -73332,19 +73514,19 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 #, fuzzy msgid "Environment variables" msgstr "Funções e Variáveis" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -73352,27 +73534,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -73380,21 +73562,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -73405,12 +73587,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -73418,7 +73600,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -73427,28 +73609,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -73458,7 +73640,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -73468,20 +73650,20 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "Exemplos (Windows)" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 #, fuzzy msgid "Example (X11)" msgstr "Exemplo" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -73490,7 +73672,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -73498,14 +73680,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -73514,57 +73696,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -73575,7 +73757,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -73585,55 +73767,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Exportando para Android" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -73642,66 +73824,66 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 #, fuzzy msgid "Command-line options" msgstr "Tutorial de linha de comando" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -73833,7 +74015,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" @@ -79737,6 +79919,72 @@ msgstr "" "'Zeef Godot Engine: Um diretório selecionado de recursos, por Andre Schmitz " "'_" +#~ msgid ":ref:`Advanced post-processing `" +#~ msgstr ":ref:`Pós-processo avançado `" + +#~ msgid "Killer features" +#~ msgstr "Recursos decisivos" + +#~ msgid "" +#~ "Note that Godot editor allows you to dock each panel at the side of the " +#~ "scene editor you wish." +#~ msgstr "" +#~ "Note que o editor Godot permite você encaixar cada painel ao lado do " +#~ "editor de cena da maneira que preferir." + +#~ msgid "" +#~ "These are the most important concepts you need to remember: \"node\", " +#~ "\"parent node\", and \"child node\"." +#~ msgstr "" +#~ "Estes são os conceitos mais importantes que você precisa lembrar: \"nó\", " +#~ "\"nó pai\" e \"nó filho\"." + +#~ msgid "" +#~ "We previously observed that there is no perfect solution to set a project " +#~ "architecture. Any solution will work for Unity and Godot, so this point " +#~ "has a lesser importance." +#~ msgstr "" +#~ "Observamos anteriormente que não há solução perfeita para definir uma " +#~ "arquitetura de projeto. Qualquer solução funcionará para a Unity e Godot, " +#~ "então este ponto tem uma importância menor." + +#~ msgid "Prefab -> Externalized branch" +#~ msgstr "Prefab -> Ramificação Externa" + +#, fuzzy +#~ msgid "" +#~ "Here's an example that creates a custom signal in one script and connects " +#~ "the custom signal to a method in a separate script, using the :ref:" +#~ "`Object.connect() ` method:" +#~ msgstr "" +#~ "Aqui está um exemplo que cria um sinal personalizado em um script e " +#~ "conecta o sinal ao método em um script separado,, using o método :ref:" +#~ "`Object.connect() `:" + +#, fuzzy +#~ msgid "" +#~ "Here is an example that creates a connection between a button's " +#~ "``pressed`` signal and a method, binding the button instance to the " +#~ "connection. The handler uses the bound argument to print which button " +#~ "instance was pressed." +#~ msgstr "Aqui está um exemplo que cria uma conexão entre um botão" + +#, fuzzy +#~ msgid "" +#~ "Signals are generated by the :ref:`Object.emit_signal() " +#~ "` method which broadcasts the signal and " +#~ "arguments." +#~ msgstr "" +#~ "Sinais são gerados pelo método :ref:`Object.emit_signal() " +#~ "` que broadcasts o sinal e argumentos." + +#, fuzzy +#~ msgid "" +#~ "Extending a previous example to use all the features of GDScript signals:" +#~ msgstr "" +#~ "Extendendo um exemplo anterior para usar todas as características dos " +#~ "sinais em GDScript." + #, fuzzy #~ msgid "" #~ "Consider breaking a line when it's longer than 100 characters. And it's " diff --git a/weblate/pt_PT.po b/weblate/pt_PT.po index 5b599eccb2..eaaf4e667c 100644 --- a/weblate/pt_PT.po +++ b/weblate/pt_PT.po @@ -15,7 +15,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:05+0000\n" "Last-Translator: João Lopes \n" "Language-Team: Portuguese (Portugal) `_, como no canal ``#godotengine-doc`` em `irc." "freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "A documentação principal está organizada nas seguintes secções:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Geral" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Como Começar" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutoriais" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Desenvolvimento" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Comunidade" @@ -1293,370 +1297,381 @@ msgstr "" "não são refletidos neste documento." #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +#, fuzzy +msgid "New tutorials since version 3.1" msgstr "Novos tutoriais desde a versão 3.0" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" -msgstr "Passo a passo" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "Internacionalização" #: ../../docs/about/docs_changelog.rst:19 #, fuzzy -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Localização" + +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" +msgstr "Novos tutoriais desde a versão 3.0" + +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "Passo a passo" + +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`Basis `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`Exporting `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Fluxo de trabalho do projeto" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 #, fuzzy msgid "Best Practices:" msgstr "Boas práticas" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr ":ref: `Introdução `" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr ":ref: `O que são as classes Godot `" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr ":ref:`Organização de cenas `" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr ":ref: `Cenas versus Scripts `" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" -":ref:`Autoloads versus nós internos `" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr ":ref:`Alternativa de nós `" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr ":ref:`Interfaces Godot `" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr ":ref:`Notificação Godot `" - #: ../../docs/about/docs_changelog.rst:36 #, fuzzy -msgid ":ref:`Data preferences `" -msgstr ":ref:`Preferências de dados `" +msgid ":ref:`doc_introduction_best_practices`" +msgstr ":ref: `Introdução `" #: ../../docs/about/docs_changelog.rst:37 #, fuzzy -msgid ":ref:`Logic preferences `" -msgstr ":ref:`Preferências de lógica `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr ":ref: `O que são as classes Godot `" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr ":ref:`Organização de cenas `" + +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" +msgstr ":ref: `Cenas versus Scripts `" #: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" +":ref:`Autoloads versus nós internos `" + +#: ../../docs/about/docs_changelog.rst:41 +#, fuzzy +msgid ":ref:`doc_node_alternatives`" +msgstr ":ref:`Alternativa de nós `" + +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" +msgstr ":ref:`Interfaces Godot `" + +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" +msgstr ":ref:`Notificação Godot `" + +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" +msgstr ":ref:`Preferências de dados `" + +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" +msgstr ":ref:`Preferências de lógica `" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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 "Scripting" -#: ../../docs/about/docs_changelog.rst:42 +#: ../../docs/about/docs_changelog.rst:50 #, fuzzy -msgid ":ref:`Typed GDscript `" +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Embutido `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 #, fuzzy msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy -msgid ":ref:`2D lights and shadows `" +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`luzes 2D e sombras `" -#: ../../docs/about/docs_changelog.rst:48 +#: ../../docs/about/docs_changelog.rst:56 #, fuzzy -msgid ":ref:`2D meshes `" +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`malhas 2D`" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 #, fuzzy msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:61 #, fuzzy -msgid ":ref:`CSG `" +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:62 #, fuzzy -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "Animar a perda de vida com o nó Tween" -#: ../../docs/about/docs_changelog.rst:55 +#: ../../docs/about/docs_changelog.rst:63 #, fuzzy -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Controlando milhares de peixes com Partículas " "`" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Fisica" -#: ../../docs/about/docs_changelog.rst:60 +#: ../../docs/about/docs_changelog.rst:68 #, fuzzy -msgid ":ref:`Ragdoll system `" +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Sistema Ragdoll`" -#: ../../docs/about/docs_changelog.rst:61 +#: ../../docs/about/docs_changelog.rst:69 #, fuzzy -msgid ":ref:`Softbody `" +msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animação" -#: ../../docs/about/docs_changelog.rst:66 +#: ../../docs/about/docs_changelog.rst:74 #, fuzzy -msgid ":ref:`2D skeletons `" +msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Esqueletos 2D`" -#: ../../docs/about/docs_changelog.rst:67 +#: ../../docs/about/docs_changelog.rst:75 #, fuzzy -msgid ":ref:`AnimationTree `" +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:72 +#: ../../docs/about/docs_changelog.rst:80 #, fuzzy -msgid ":ref:`Containers `" +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Interfaces Godot `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 #, fuzzy msgid "Viewports" msgstr "Viewports" -#: ../../docs/about/docs_changelog.rst:77 +#: ../../docs/about/docs_changelog.rst:85 #, fuzzy -msgid ":ref:`Using a Viewport as a texture `" +msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Usando uma Viewport como uma textura `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:86 #, fuzzy -msgid ":ref:`Custom post-processing `" +msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Pós-processamento personalizado `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 #, fuzzy msgid "Shading" msgstr "Shading" -#: ../../docs/about/docs_changelog.rst:83 +#: ../../docs/about/docs_changelog.rst:91 #, fuzzy -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introdução aos shaders: água 2D e 3D (7 video-tutoriais) " "`" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:92 #, fuzzy -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migrando para a linguagem de shading da Godot " "`" -#: ../../docs/about/docs_changelog.rst:85 +#: ../../docs/about/docs_changelog.rst:93 #, fuzzy -msgid ":ref:`Advanced post-processing `" -msgstr ":ref:`Pós-processamento avançado `" +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "Define uma variavel." -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 #, fuzzy msgid "Your First Shader Series:" msgstr "Seu primeiro jogo" -#: ../../docs/about/docs_changelog.rst:88 -#, fuzzy -msgid ":ref:`What are shaders? `" -msgstr ":ref:`Facilidade para escrever Shaders `" - -#: ../../docs/about/docs_changelog.rst:89 -#, fuzzy -msgid ":ref:`Your first CanvasItem shader `" -msgstr ":ref:`Shaders de CanvasItem `" - -#: ../../docs/about/docs_changelog.rst:90 -#, fuzzy -msgid ":ref:`Your first Spatial shader `" -msgstr ":ref:`Facilidade para escrever Shaders `" - -#: ../../docs/about/docs_changelog.rst:91 -#, fuzzy -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr ":ref:`Facilidade para escrever Shaders `" - -#: ../../docs/about/docs_changelog.rst:98 -#, fuzzy -msgid "Shading Reference:" -msgstr "Alterando a cena atual" - -#: ../../docs/about/docs_changelog.rst:94 -#, fuzzy -msgid ":ref:`Shaders `" -msgstr ":ref:`Facilidade para escrever Shaders `" - -#: ../../docs/about/docs_changelog.rst:95 -#, fuzzy -msgid ":ref:`Shading language `" -msgstr ":ref:`Facilidade para escrever Shaders `" - #: ../../docs/about/docs_changelog.rst:96 #, fuzzy -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Facilidade para escrever Shaders `" #: ../../docs/about/docs_changelog.rst:97 #, fuzzy -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Shaders de CanvasItem `" #: ../../docs/about/docs_changelog.rst:98 #, fuzzy -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:99 +#, fuzzy +msgid ":ref:`doc_your_second_spatial_shader`" +msgstr ":ref:`Facilidade para escrever Shaders `" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid "Shading Reference:" +msgstr "Alterando a cena atual" + +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" +msgstr ":ref:`Facilidade para escrever Shaders `" + +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" +msgstr ":ref:`Facilidade para escrever Shaders `" + +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" +msgstr ":ref:`Facilidade para escrever Shaders `" + +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" +msgstr ":ref:`Shaders de CanvasItem `" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr ":ref:`Facilidade para escrever Shaders `" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 #, fuzzy msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy -msgid ":ref:`VR starter tutorial `" +msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Tutorial de iniciante de VR `" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 #, fuzzy msgid "Platform-specific" msgstr "Específico de plataforma" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy -msgid "" -":ref:`Customizing the Web export HTML page `" +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Personalizando a Web export HTML page `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 #, fuzzy msgid "Multi-threading" msgstr "String com múltiplas linhas" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:121 #, fuzzy -msgid ":ref:`Thread safe APIs `" +msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread safe APIs `" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animação" -#: ../../docs/about/docs_changelog.rst:118 +#: ../../docs/about/docs_changelog.rst:126 #, fuzzy -msgid ":ref:`Using MultiMesh `" +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:119 +#: ../../docs/about/docs_changelog.rst:127 #, fuzzy -msgid ":ref:`Using servers `" +msgid ":ref:`doc_using_servers`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 #, fuzzy msgid "Miscellaneous" msgstr "Diversos" -#: ../../docs/about/docs_changelog.rst:124 +#: ../../docs/about/docs_changelog.rst:132 #, fuzzy -msgid ":ref:`Fixing jitter and stutter `" +msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Consertando jitter e stutter `" -#: ../../docs/about/docs_changelog.rst:125 +#: ../../docs/about/docs_changelog.rst:133 #, fuzzy -msgid ":ref:`Running code in the editor `" +msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Rodando código no editor `" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:134 #, fuzzy -msgid ":ref:`Change scenes manually `" +msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Mudar cenas manualmente `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "Diferenças gerais entre o C# e o GDScript" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 +#: ../../docs/about/docs_changelog.rst:140 #, fuzzy -msgid ":ref:`Complying with Licenses `" +msgid ":ref:`doc_complying_with_licenses`" msgstr "" ":ref:`Compilando com chave de encriptação de script " "`" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 @@ -1664,62 +1679,59 @@ msgstr "" msgid "Compiling" msgstr "Compilando" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:145 #, fuzzy -msgid ":ref:`Optimizing a build for size `" +msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`Otimizando uma build por tamanho `" -#: ../../docs/about/docs_changelog.rst:138 +#: ../../docs/about/docs_changelog.rst:146 #, fuzzy -msgid "" -":ref:`Compiling with script encryption key " -"`" +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Compilando com chave de encriptação de script " "`" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 #, fuzzy msgid "Engine development" msgstr "Desenvolvimento de Engine" -#: ../../docs/about/docs_changelog.rst:143 +#: ../../docs/about/docs_changelog.rst:151 #, fuzzy -msgid "" -":ref:`Binding to external libraries `" +msgid ":ref:`doc_binding_to_external_libraries`" msgstr ":ref:`Editores externos são possíveis `" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Criando conteúdo" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:156 #, fuzzy -msgid ":ref:`Making trees `" +msgid ":ref:`doc_making_trees`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:153 +#: ../../docs/about/docs_changelog.rst:161 #, fuzzy -msgid ":ref:`Making main screen plugins `" +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Fazendo plugins da cena principal `" -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:162 #, fuzzy -msgid ":ref:`Spatial gizmo plugins `" +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:155 +#: ../../docs/about/docs_changelog.rst:163 #, fuzzy -msgid ":ref:`Creating Android plugins `" +msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Canalização de Animações `" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -2288,7 +2300,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2691,14 +2703,16 @@ msgstr "" #, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "Você também pode ajustar instâncias individualmente. Configure o valor de " "quique de volta para ``0.5`` e então, na cena ``Main``, selecione uma das " "bolas instanciadas. Defina seu ``Bounce`` para ``1`` e pressione \"Rodar\"." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2714,14 +2728,14 @@ msgstr "" "permanecerá o mesmo. Pressionando o botão reverter vai restaurar a " "propriedade para o valor na cena salva." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Conclusão" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3650,8 +3664,8 @@ msgstr "Grupos" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Nós podem ser adicionados a grupos, tantos quantos desejados por nó, e isso " "é uma funcionalidade útil para organizar cenas grandes. Há duas forma de " @@ -3898,7 +3912,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "Apenas GDScript pode criar variáveis globais para cada script nomeado." #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5536,24 +5550,24 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "Finalizando" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -5564,12 +5578,12 @@ msgstr "" "experiência do jogo. Sinta-se livre para expandir a jogabilidade com suas " "próprias ideias." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "Plano de fundo" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5586,7 +5600,7 @@ msgstr "" "cor que goste e, com o mouse, altere as dimensões do ``ColorRect`` para que " "cubra a tela." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 msgid "" "You could also add a background image, if you have one, by using a " "``Sprite`` node." @@ -5594,11 +5608,11 @@ msgstr "" "Você também pode adicionar uma imagem de plano de fundo, se tiver uma, " "usando um nó ``Sprite``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "Efeitos sonoros" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5610,7 +5624,7 @@ msgstr "" "de áudio: \"House In a Forest Loop.ogg\" para música de fundo e \"gameover." "wav\" para quando o jogador perde." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5622,7 +5636,7 @@ msgstr "" "``SomDeMorte``. Em cada um, clique na propriedade ``Stream`` (\"fluxo\"), " "selecione \"Carregar\", e escolha o ficheiro sonoro correspondente." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5630,15 +5644,15 @@ msgstr "" "Para reproduzir a música, adicione ``$Musica.play()``na função " "``new_game()`` e ``$Musica.stop()`` na função ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "Por fim, adicione ``$SomDeMorte.play()`` na função ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "Atalho de teclado" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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 " @@ -5648,7 +5662,7 @@ msgstr "" "também pudéssemos começar o jogo premindo uma tecla no teclado. Uma maneira " "de fazer isso é usar a propriedade \"Shortcut\" do nó ``Button``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5664,7 +5678,7 @@ msgstr "" "digite o nome \"ui_select\". Este é o evento de entrada padrão associado à " "barra de espaço." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." @@ -5672,19 +5686,19 @@ msgstr "" "Agora, quando o botão iniciar aparecer, você pode clicar nele ou pressionar " "a barra de espaço para iniciar o jogo." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "Ficheiros do projeto" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "Você pode encontrar uma versão finalizada deste projeto nestes locais:" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "https://github.com/kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -5794,7 +5808,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "Exportar modelos" @@ -6388,11 +6402,11 @@ msgstr "" "zero pelos colaboradores." #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 +#, fuzzy msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" "Qualquer um pode conectar ferramentas proprietárias para as necessidades de " "seus projetos - elas simplesmente não são enviadas com a engine. Isso pode " @@ -10333,7 +10347,7 @@ msgstr ":download:`robisplash_assets.zip `." #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -11880,67 +11894,74 @@ msgstr "" "usuário Unity, e procura te ajudar a migrar sua experiência em Unity para o " "mundo do Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "Diferenças" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licença" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" "Proprietário, código fechado, licença grátis com teto de rendimento e " "restrições de uso" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "Licença MIT, grátis e código totalmente aberto sem nenhuma restrição" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "OS (editor)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "Windows, macOS, Linux (não oficial e sem suporte)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "OS (exportar)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**Desktop:** Windows, macOS, Linux" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**Dispositivos móveis:** Android, iOS, Windows Phone, Tizen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "**Web:** WebAssembly ou asm.js" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" @@ -11948,43 +11969,43 @@ msgstr "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "**TV:** Android TV, Samsung Smart TV, tvOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "**Desktop:** Windows, macOS, X11" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "**Dispositivos móveis:** Android, iOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "**Web:** WebAssembly" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "**Console:** Ver :ref:`doc_consoles`" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "**VR:** Oculus Rift, SteamVR" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "Sistema de cenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "Componente/Cena (GameObject > Component)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "Prefabs" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" @@ -11992,81 +12013,74 @@ msgstr "" ":ref:`Árvore de cenas e nós `, permitindo que cenas " "sejam aninhadas e/ou herdem outras cenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "Ferramentas de terceiros" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "Visual Studio ou VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr ":ref:`Editores externos são possíveis `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" ":ref:`Android SDK para exportação a Android `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" -msgstr "Recursos decisivos" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "Comunidade enorme" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "Grande armazém de recursos" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "Sistema de cenas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "Depuração no dispositivo" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "O editor" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 +#, fuzzy msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" "A Godot Engine fornece um editor rico em recursos que lhe permitem construir " "seus jogos. As imagens abaixo exibem os dois editores com blocos coloridos " "para indicar funcionalidades comuns." -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" -"Note que o editor Godot permite você encaixar cada painel ao lado do editor " -"de cena da maneira que preferir." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 #, fuzzy msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" "Embora ambos os editores possam parecer semelhantes, há muitas diferenças " "por trás. Ambos permitem organizar o projeto usando o sistema de ficheiros, " @@ -12075,26 +12089,27 @@ msgstr "" "contribui para a Godot ser muito mais amigável para sistemas VCS, como Git, " "Subversion ou Mercurial." -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 +#, fuzzy msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" "O painel Scene da Godot é semelhante ao painel Hierarquia da Unity, mas, " "como cada nó tem uma função específica, a abordagem usada pela Godot é mais " "visualmente descritiva. Em outras palavras, é mais fácil entender o que uma " "cena específica faz de relance." -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 +#, fuzzy msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" "O inspetor na Godot é mais minimalista e projetado para mostrar apenas " "propriedades. Graças a isso, os objetos podem exportar uma quantidade muito " @@ -12104,12 +12119,13 @@ msgstr "" "possível alterar cores, texturas, enumerações ou mesmo links para recursos " "em tempo real sem envolver código." -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 +#, fuzzy msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" "Finalmente, a barra de ferramentas na parte superior da tela é semelhante no " "sentido de permitir o controle da reprodução do projeto, mas os projetos na " @@ -12117,19 +12133,20 @@ msgstr "" "editor (mas a árvore e os objetos ainda podem ser explorados na janela do " "depurador)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 +#, fuzzy msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" "Esta abordagem tem a desvantagem de que o jogo em execução não pode ser " "explorado de diferentes ângulos (embora isso possa ser suportado no futuro e " "exibir dispositivos de colisão no jogo em execução já seja possível), mas em " "troca tem várias vantagens:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." @@ -12137,7 +12154,7 @@ msgstr "" "Executar o projeto e fechá-lo é rápido (A Unity precisa salvar, executar o " "projeto, fechar o projeto e, em seguida, recarregar o estado anterior)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -12149,51 +12166,55 @@ msgstr "" "sincronizadas) quando o jogo é fechado. Isso permite fluxos de trabalho " "fantásticos, como criar níveis enquanto você os reproduz." -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" "O editor é mais estável porque o jogo é executado em um processo separado." -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 +#, fuzzy msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" "Finalmente, a barra de ferramentas superior inclui um menu para depuração " "remota. Essas opções simplificam a implantação em um dispositivo (telefone " "conectado, tablet ou navegador via HTML5) e a edição de depuração / edição " "ao vivo após a exportação do jogo." -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "O sistema de cena" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 +#, fuzzy msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" "Esta é a diferença mais importante entre a Unity e a Godot, na verdade, a " "característica favorita da maioria dos usuários da Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 +#, fuzzy msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" "O sistema de cena da Unity consiste em incorporar todos os recursos " "necessários em uma cena e vinculá-los, definindo componentes e scripts para " "eles." -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 #, fuzzy msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" "O sistema de cena da Godot é diferente: na verdade consiste em uma árvore " "feita de nós. Cada nó serve a um propósito: Sprite, Malha, Luz, etc. " @@ -12202,7 +12223,7 @@ msgstr "" "Isso significa que você pode compor uma cena inteira com cenas diferentes " "armazenadas em ficheiros diferentes." -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" @@ -12210,23 +12231,23 @@ msgstr "" "Por exemplo, pense em um nível de plataforma. Você poderia compor com vários " "elementos:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "Tijolos" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "Moedas" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "O jogador" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "Os inimigos" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -12243,55 +12264,64 @@ msgstr "" "elementos da cena para que eles pudessem colidir. Este princípio é diferente " "na Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 +#, fuzzy msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." msgstr "" "Na Godot, você dividiria toda a sua cena em três cenas menores e menores, " "que você veria na cena principal." -#: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#, fuzzy +msgid "**A scene for the Player alone.**" msgstr "**Primeiro, uma cena para o Jogador sozinho.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#: ../../docs/getting_started/editor/unity_to_godot.rst:115 +#, fuzzy msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" "Considere o jogador como um elemento reutilizável em outros níveis. É " "composto de um nó em particular: um nó AnimatedSprite, que contém as " "texturas do sprite para formar várias animações (por exemplo, animação " "andando)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#, fuzzy +msgid "**A scene for the Enemy.**" msgstr "**Segundo, uma cena para o Inimigo.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 +#, fuzzy msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" "Novamente, um inimigo é um elemento reutilizável em outros níveis. É quase o " "mesmo que o nó do Player - as únicas diferenças são o script (que gerencia " "AI, principalmente) e as texturas de sprites usadas pelo AnimatedSprite." -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +#, fuzzy +msgid "**A Level scene.**" msgstr "**Por último, a cena do Nível.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 +#, fuzzy msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" "Ele é composto de Bricks (para plataformas), Coins (para o jogador pegar) e " "um certo número de instâncias da cena anterior do Inimigo. Estes serão " @@ -12300,10 +12330,11 @@ msgstr "" "nó na árvore de cena de Level. Naturalmente, você pode definir propriedades " "diferentes para cada nó do Inimigo (para alterar sua cor, por exemplo)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 +#, fuzzy msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " @@ -12316,7 +12347,7 @@ msgstr "" "\"Espacial\" (tipo raiz de todos os 3D- nós relacionados) ou \"Control" "\" (tipo de raiz de todos os nós relacionados à GUI)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 #, fuzzy msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " @@ -12333,36 +12364,37 @@ msgstr "" "colisão. Godot possui vários tipos de colisão, dependendo do uso (veja :ref:" "`Introdução à física `)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#, fuzzy msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" "Pergunta: Quais são as vantagens deste sistema? Esse sistema não aumentaria " "potencialmente a profundidade da árvore de cena? Além disso, a Unity permite " "organizar GameObjects colocando-os em GameObjects vazios." -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 +#, fuzzy msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" "Em primeiro lugar, este sistema está mais próximo do paradigma bem conhecido " "orientado a objetos: Godot fornece um número de nós que não são claramente " "\"Objetos de Jogo\", mas eles fornecem seus filhos com suas próprias " "capacidades: isto é herança." -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 #, fuzzy msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" "Segundo, permite a extração de uma sub-árvore de cena para torná-la uma cena " "própria, que responde à segunda e à terceira pergunta: mesmo que uma árvore " @@ -12372,46 +12404,35 @@ msgstr "" "vários nós em um GameObject vazio na Unity não oferece a mesma " "possibilidade, além de uma organização visual." -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" -"Estes são os conceitos mais importantes que você precisa lembrar: \"nó\", " -"\"nó pai\" e \"nó filho\"." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "Organização do projeto" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -"Observamos anteriormente que não há solução perfeita para definir uma " -"arquitetura de projeto. Qualquer solução funcionará para a Unity e Godot, " -"então este ponto tem uma importância menor." -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 +#, fuzzy msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" "Observamos anteriormente que não há solução perfeita para definir uma " "arquitetura de projeto. Qualquer solução funcionará para a Unity e a Godot, " "então este ponto tem uma importância menor." -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 +#, fuzzy msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" "Como descrito anteriormente, o sistema de cenas da Godot permite dividir as " "cenas em cenas menores. Como cada cena é uma sub-cena, na verdade, um " @@ -12419,32 +12440,33 @@ msgstr "" "maneira um pouco diferente. Este wiki fornece uma página para isto:: ref: " "`doc_project_organization`." -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "Onde estão meus prefabs?" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 +#, fuzzy msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" "O conceito de prefabs fornecido pela Unity é um elemento \"modelo\" da cena. " "É reutilizável, e cada instância do prefab que existe na cena tem uma " "existência própria, mas todas elas têm as mesmas propriedades definidas pelo " "prefab." -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 #, fuzzy msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" "Godot não fornece prefabs como tal, mas esta funcionalidade está aqui, " "novamente, preenchida graças ao seu sistema de cena: Como vimos, o sistema " @@ -12455,16 +12477,17 @@ msgstr "" "suas instâncias. No entanto, qualquer alteração feita na instância não terá " "impacto na cena \"modelo\"." -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 +#, fuzzy msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" "Para ser preciso, você pode modificar os parâmetros da instância no painel " "Inspetor. No entanto, os nós que compõem essa instância são bloqueados, " @@ -12475,40 +12498,41 @@ msgstr "" "cena \"modelo\". Se você quiser adicionar novos filhos a todas as instâncias " "da sua cena de 'modelo', você precisa adicioná-los na cena 'modelo'." -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "Correspondência do glossário" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "GameObject -> Nó" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "Adicionar um componente -> Herdar" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" -msgstr "Prefab -> Ramificação Externa" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "Scripting: GDScript, C # e Visual Script" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "Design" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#, fuzzy msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" "Como você já deve saber, a Unity suporta o C #. O C # se beneficia da " "integração com o Visual Studio e de outros recursos, como a digitação " "estática." -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 #, fuzzy msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " @@ -12516,9 +12540,9 @@ msgid "" "visual_script>` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" "Godot fornece sua própria linguagem de script, ref: `GDScript " "` bem como suporte para: ref: `Visual Script `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 #, fuzzy msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " @@ -12611,16 +12635,16 @@ msgstr "" "sempre que quiser. Esse recurso está documentado `here ` _." -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Animação" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "O Unity pode manipular a serialização de scripts de duas maneiras:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." @@ -12628,7 +12652,7 @@ msgstr "" "Implícito: Todos os campos públicos em uma classe são automaticamente " "serializados se o tipo for serializável (``Dicionário`` não é serializável)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." @@ -12636,7 +12660,7 @@ msgstr "" "Explicito: Campos não públicos podem ser serializados usando o atributo " "``[SerializarCampo] ``." -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -12651,7 +12675,7 @@ msgstr "" "class_dictionary`) usando a palavra-chave `` export``. Veja a: ref: " "`documentação de exportações ` para detalhes." -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -12666,11 +12690,11 @@ msgstr "" "serializáveis personalizados. Mais informações sobre recursos podem ser " "encontradas: ref: `here `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "Usando Godot com C ++" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 #, fuzzy msgid "" "Godot allows you to develop your project directly in C++ by using its API, " @@ -12683,7 +12707,7 @@ msgstr "" "momento. Como exemplo, você pode considerar o editor do Godot Engine como um " "\"jogo\" escrito em C ++ usando a Godot API." -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -15253,11 +15277,18 @@ msgstr "" "manualmente de fazê-lo). Para isso, a palavra ``tool`` existe e deve ser " "colocada no topo do ficheiro:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "Gerenciamento de memória" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -15275,7 +15306,7 @@ msgstr "" "instance.free (). Para evitar ciclos de referência que não podem ser " "liberados, uma função ``weakref`` é fornecida para criar referências fracas." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 msgid "" "Alternatively, when not using references, the " "``is_instance_valid(instance)`` can be used to check if an object has been " @@ -15285,82 +15316,134 @@ msgstr "" "is_instance_valid (instance) `` pode ser usado para verificar se um objeto " "foi liberado." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 +#, fuzzy msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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 "" "Sinais são um modo de enviar mensagens de notificação de um objeto para que " "outros objetos possam o ouvir de forma genérica. Crie sinais customizados " "para uma classe usando a palavra-chave ``signal``." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 +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:1490 #, fuzzy msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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 "" "Esses sinais podem ser conectados aos métodos da mesma forma com que você " "conecta sinais embutidos de nós como :ref:`class_Button` ou :ref:" "`class_RigidBody`." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1481 -#, fuzzy +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1493 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" -"Aqui está um exemplo que cria um sinal personalizado em um script e conecta " -"o sinal ao método em um script separado,, using o método :ref:`Object." -"connect() `:" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 +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:1514 +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:1556 +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:1559 +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:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 #, fuzzy msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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 "" "GDScript pode passar argumentos a conexões entre um sinal e um método. " "Quando o sinal é emitido, chamando o método conectado, o argumento é dado ao " "método. Esses argumentos são específicos" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1516 -#, fuzzy +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." -msgstr "Aqui está um exemplo que cria uma conexão entre um botão" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1531 -#, fuzzy -msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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 "" -"Sinais são gerados pelo método :ref:`Object.emit_signal() " -"` que broadcasts o sinal e argumentos." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1534 -#, fuzzy +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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 "" -"Extendendo um exemplo anterior para usar todas as características dos sinais " -"em GDScript." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "Corrotinas com yield" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 #, fuzzy msgid "" "GDScript offers support for `coroutines )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" "Use a codificação UTF-8 sem uma marca de ordem de byte (BOM )." #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 +#, fuzzy msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" "Use 4 espaços em vez de tabs para indentação (que é referido como \"tabs " "suaves\")." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 #, fuzzy msgid "Line breaks and blank lines" msgstr "Quebras de Linha e Linhas em Branco" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 +#, fuzzy msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" @@ -20106,42 +20196,43 @@ msgstr "" "chave associada a uma declaração de controle na próxima linha, recuada para " "a mesmo nível:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 #, fuzzy msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" "No entanto, você pode optar por omitir quebras de linha dentro de chaves," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "Para simples propriedades acessoras." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "Para inicializadores de simples objeto, array ou coleção." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "Para auto propriedade abstrata, indexador ou declarações de evento." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 #, fuzzy msgid "Insert a blank line:" msgstr "Inserira uma linha em branco," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#, fuzzy +msgid "After a list of ``using`` statements." msgstr "Depois de *usar* a lista de instruções." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 msgid "Between method, properties, and inner type declarations." msgstr "Entre o método, propriedades e declarações de tipo interno." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " @@ -20151,110 +20242,107 @@ msgstr "" "relevância. Nesse caso, considere inserir uma linha em branco entre os " "grupos para facilitar a leitura." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 #, fuzzy msgid "Avoid inserting a blank line:" msgstr "Evite inserir uma linha em branco," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 #, fuzzy msgid "After ``{``, the opening brace." msgstr "Depois de uma chave de abertura ('{')." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 #, fuzzy msgid "Before ``}``, the closing brace." msgstr "Antes de uma chave de fechamento ('}')." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#, fuzzy +msgid "After a comment block or a single-line comment." msgstr "Depois de um bloco de comentário ou um comentário de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "Adjacente a outra linha em branco." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 #, fuzzy msgid "Using spaces" msgstr "Usando Espaços" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 #, fuzzy msgid "Insert a space:" msgstr "Insira um espaço," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "Em torno de um operador binário e ternário." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#, fuzzy msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" "Entre um parêntese de abertura e as palavras-chave *se*, *para*, *foreach*, " "*catch*, *while*, *lock* ou *using*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "Antes e dentro de um bloco de acessador de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "Entre os acessadores em um bloco de acessador de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "Depois de uma vírgula." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#, fuzzy +msgid "After a semicolon in a ``for`` statement." msgstr "Depois de um ponto-e-vírgula em uma declaração *para*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#, fuzzy +msgid "After a colon in a single line ``case`` statement." msgstr "Depois de dois pontos em declaração *case* de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "Em torno de dois pontos em uma declaração de tipo." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "Em torno de uma seta lambda." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 +#, fuzzy msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" "Após um símbolo de comentário de linha única ('//') e antes, se usado no " "final de uma linha." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 #, fuzzy msgid "Do not use a space:" msgstr "Não use um espaço," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 #, fuzzy msgid "After type cast parentheses." msgstr "Depois de um parênteses de um tipo de conversão." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "Dentro de chaves de inicialização de linha única." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 #, fuzzy msgid "" "The following example shows a proper use of spaces, according to some of the " @@ -20263,52 +20351,56 @@ msgstr "" "O exemplo a seguir mostra um uso adequado dos espaços, de acordo com algumas " "das convenções mencionadas acima:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 +#, fuzzy msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" "Use *PascalCase* para todos os namespaces, nomes de tipos e identificadores " "de nível de membro (ou seja, métodos, propriedades, constantes, eventos), " "exceto para campos privados:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 +#, fuzzy msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" msgstr "" "Use *camelCase* para todos os outros identificadores (isto é, variáveis " "locais, argumentos de método) e use sublinhado ('_') como um prefixo para " "campos privados (mas não para métodos ou propriedades, como explicado acima):" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 #, fuzzy msgid "" "There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" "Há uma exceção com siglas que consistem em duas letras como *'UI'*, que " "devem ser escritas em letras maiúsculas quando usadas onde o PascalCase " "seria esperado, e em letras minúsculas, caso contrário." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#, fuzzy msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" "Note que *'id'* **não** é um acrônimo, então deve ser tratado como um " "identificador normal:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 #, fuzzy msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" "Geralmente é desencorajado usar um nome de tipo como um prefixo de um " "identificador como *'string strText'* ou *'float fPower'*, por exemplo. No " @@ -20316,7 +20408,7 @@ msgstr "" "nomeadas usando maiúsculas *'I'* como um prefixo, como *'IInventoryHolder'* " "ou *'IDamageable'*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." @@ -20324,27 +20416,29 @@ msgstr "" "Por último, considere a escolha de nomes descritivos e não tente encurtá-los " "demais se isso afetar a legibilidade." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 #, fuzzy msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" "Por exemplo, se você quiser escrever um código para encontrar um inimigo " "próximo e acertar com uma arma, prefira" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" msgstr "Ao invés de," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 #, fuzzy msgid "Implicitly typed local variables" msgstr "Variáveis Locais Tipadas Implicitamente" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 +#, fuzzy msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" @@ -20352,45 +20446,50 @@ msgstr "" "variável local, mas faça isso **somente quando o tipo for evidente** do lado " "direito da atribuição:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 #, fuzzy msgid "Other considerations" msgstr "Outras considerações" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "Use modificadores de acesso explícito." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "Use propriedades em vez de campos não privados." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 +#, fuzzy msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" "Use modificadores nesta ordem: *'public/protected/private/internal virtual/" "override/abstract/new static readonly'*." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#, fuzzy msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" "Evite usar nomes completos ou o prefixo *'this'* para membros, quando não " "for necessário." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#, fuzzy +msgid "Remove unused ``using`` statements and unnecessary parentheses." msgstr "" "Remova as instruções *'using'* não utilizadas e parênteses desnecessários." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#, fuzzy +msgid "Consider omitting the default initial value for a type." msgstr "Considere omitir o valor inicial padrão de um tipo." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." @@ -20398,7 +20497,7 @@ msgstr "" "Considere usar operadores condicionais nulos ou digite inicializadores para " "tornar o código mais compacto." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -23902,91 +24001,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -31277,18 +31382,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -31296,11 +31417,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -31310,11 +31431,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Profundidade" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -31323,34 +31444,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -31358,33 +31479,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -31392,17 +31513,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -31411,17 +31532,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -31545,7 +31666,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -31962,7 +32084,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -32037,13 +32159,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -32052,31 +32181,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "As principais razões são:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -32084,64 +32213,64 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 #, fuzzy msgid "Adding lights" msgstr "Adicionando um script" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -32149,82 +32278,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -32832,7 +32961,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -32840,28 +32969,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -32871,7 +33000,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -32881,58 +33010,58 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 #, fuzzy msgid "Mid- and post-processing effects" msgstr "Define uma variavel." -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -32941,7 +33070,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -32949,52 +33078,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -33004,28 +33133,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -33033,47 +33162,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -33082,65 +33211,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -33150,27 +33279,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -33178,78 +33307,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -34575,23 +34704,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -34599,90 +34728,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -34691,30 +34820,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -34722,121 +34851,121 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" "Primeiro, definimos ``dir`` como um :ref:`Vector3 ` vazio." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -34844,13 +34973,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -34858,44 +34987,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -34903,14 +35032,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -34919,37 +35048,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -34957,7 +35086,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -34966,7 +35095,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -34974,7 +35103,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -34982,12 +35111,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -34995,30 +35124,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -35026,30 +35155,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -35057,14 +35186,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -35072,86 +35201,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -35159,62 +35288,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -35223,7 +35352,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -35231,44 +35360,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -35278,32 +35407,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -35313,7 +35442,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -42692,7 +42821,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -42703,99 +42832,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -42803,11 +42932,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -42818,26 +42947,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -42846,7 +42975,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -43836,7 +43965,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "Exemplos" @@ -49541,10 +49670,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "Internacionalização" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -58231,7 +58356,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -69188,6 +69313,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -69198,52 +69327,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -71114,9 +71243,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -71147,7 +71276,7 @@ msgstr "Ferramentas de terceiros" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -71176,7 +71305,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -71200,9 +71329,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -71607,7 +71736,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -71893,7 +72022,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -72054,17 +72183,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -72073,7 +72201,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -72146,7 +72274,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -72175,12 +72303,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -72200,57 +72327,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -72258,7 +72381,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -72266,57 +72389,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -72327,6 +72459,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -73232,7 +73368,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -73240,19 +73375,19 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 #, fuzzy msgid "Environment variables" msgstr "Define uma variavel." -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -73260,27 +73395,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -73288,21 +73423,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -73313,12 +73448,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -73326,7 +73461,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -73335,28 +73470,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -73366,7 +73501,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -73376,20 +73511,20 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "Exemplos (Windows)" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 #, fuzzy msgid "Example (X11)" msgstr "Exemplo" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -73398,7 +73533,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -73406,14 +73541,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -73422,57 +73557,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -73483,7 +73618,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -73493,55 +73628,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Exportando para Android" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -73550,66 +73685,66 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 #, fuzzy msgid "Command-line options" msgstr "Condição" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -73741,7 +73876,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" @@ -79645,6 +79780,73 @@ msgstr "" "'Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "'_" +#, fuzzy +#~ msgid ":ref:`Advanced post-processing `" +#~ msgstr ":ref:`Pós-processamento avançado `" + +#~ msgid "Killer features" +#~ msgstr "Recursos decisivos" + +#~ msgid "" +#~ "Note that Godot editor allows you to dock each panel at the side of the " +#~ "scene editor you wish." +#~ msgstr "" +#~ "Note que o editor Godot permite você encaixar cada painel ao lado do " +#~ "editor de cena da maneira que preferir." + +#~ msgid "" +#~ "These are the most important concepts you need to remember: \"node\", " +#~ "\"parent node\", and \"child node\"." +#~ msgstr "" +#~ "Estes são os conceitos mais importantes que você precisa lembrar: \"nó\", " +#~ "\"nó pai\" e \"nó filho\"." + +#~ msgid "" +#~ "We previously observed that there is no perfect solution to set a project " +#~ "architecture. Any solution will work for Unity and Godot, so this point " +#~ "has a lesser importance." +#~ msgstr "" +#~ "Observamos anteriormente que não há solução perfeita para definir uma " +#~ "arquitetura de projeto. Qualquer solução funcionará para a Unity e Godot, " +#~ "então este ponto tem uma importância menor." + +#~ msgid "Prefab -> Externalized branch" +#~ msgstr "Prefab -> Ramificação Externa" + +#, fuzzy +#~ msgid "" +#~ "Here's an example that creates a custom signal in one script and connects " +#~ "the custom signal to a method in a separate script, using the :ref:" +#~ "`Object.connect() ` method:" +#~ msgstr "" +#~ "Aqui está um exemplo que cria um sinal personalizado em um script e " +#~ "conecta o sinal ao método em um script separado,, using o método :ref:" +#~ "`Object.connect() `:" + +#, fuzzy +#~ msgid "" +#~ "Here is an example that creates a connection between a button's " +#~ "``pressed`` signal and a method, binding the button instance to the " +#~ "connection. The handler uses the bound argument to print which button " +#~ "instance was pressed." +#~ msgstr "Aqui está um exemplo que cria uma conexão entre um botão" + +#, fuzzy +#~ msgid "" +#~ "Signals are generated by the :ref:`Object.emit_signal() " +#~ "` method which broadcasts the signal and " +#~ "arguments." +#~ msgstr "" +#~ "Sinais são gerados pelo método :ref:`Object.emit_signal() " +#~ "` que broadcasts o sinal e argumentos." + +#, fuzzy +#~ msgid "" +#~ "Extending a previous example to use all the features of GDScript signals:" +#~ msgstr "" +#~ "Extendendo um exemplo anterior para usar todas as características dos " +#~ "sinais em GDScript." + #, fuzzy #~ msgid "" #~ "Consider breaking a line when it's longer than 100 characters. And it's " diff --git a/weblate/ro.po b/weblate/ro.po index ee645efd32..d7b9df5540 100644 --- a/weblate/ro.po +++ b/weblate/ro.po @@ -10,7 +10,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2018-08-05 00:52+0000\n" "Last-Translator: Grigore Antoniuc \n" "Language-Team: Romanian `_, fie pe canalul ``#godotengine-doc`` de pe " "`irc.freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Documentația principală pentru site este organizată în următoarele secțiuni:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "General" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Noțiuni de bază" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutoriale" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Dezvoltare" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Comunitate" @@ -1109,363 +1113,364 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "Animație asistată" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animație" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr "Particule" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animație" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Creare de conținut" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugin-uri" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Creare de conținut" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1927,7 +1932,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Editor" @@ -2222,11 +2227,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2236,14 +2243,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2923,8 +2930,8 @@ msgstr "Grupuri" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3102,7 +3109,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4304,36 +4311,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4343,17 +4350,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4361,7 +4368,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4369,28 +4376,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4400,25 +4407,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4495,7 +4502,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4919,9 +4926,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7683,7 +7689,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8767,223 +8773,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licență" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8991,65 +8997,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9059,59 +9066,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9121,142 +9130,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9264,7 +9264,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9272,30 +9272,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9303,7 +9302,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9311,28 +9310,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Animație asistată" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9341,7 +9340,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9350,11 +9349,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9362,7 +9361,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11456,11 +11455,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11471,67 +11477,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11541,43 +11609,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11585,7 +11653,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11593,11 +11661,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12110,7 +12178,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14198,7 +14266,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15028,10 +15096,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15047,273 +15114,270 @@ msgid "Formatting conventions" msgstr "Creare de conținut" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18291,91 +18355,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25607,18 +25677,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25626,11 +25712,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25640,11 +25726,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Adâncime" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25653,34 +25739,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25688,33 +25774,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25722,17 +25808,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25741,17 +25827,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25871,7 +25957,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26288,7 +26375,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26363,13 +26450,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26378,30 +26472,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26409,63 +26503,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26473,82 +26567,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27145,7 +27239,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27153,28 +27247,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27184,7 +27278,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27194,57 +27288,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27253,7 +27347,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27261,52 +27355,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27316,28 +27410,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27345,47 +27439,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27394,65 +27488,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27462,27 +27556,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27490,78 +27584,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28802,23 +28896,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28826,90 +28920,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28918,30 +29012,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28949,120 +29043,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29070,13 +29164,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29084,44 +29178,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29129,14 +29223,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29145,37 +29239,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29183,7 +29277,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29192,7 +29286,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29200,7 +29294,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29208,12 +29302,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29221,30 +29315,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29252,30 +29346,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29283,14 +29377,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29298,86 +29392,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29385,62 +29479,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29449,7 +29543,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29457,44 +29551,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29504,32 +29598,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29539,7 +29633,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36833,7 +36927,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36844,99 +36938,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36944,11 +37038,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36959,26 +37053,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36987,7 +37081,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37780,7 +37874,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43403,10 +43497,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52057,7 +52147,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62884,6 +62974,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62894,52 +62988,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64766,9 +64860,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64797,7 +64891,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64825,7 +64919,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64849,9 +64943,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65256,7 +65350,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65542,7 +65636,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65703,17 +65797,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65722,7 +65815,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65795,7 +65888,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65824,12 +65917,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65849,57 +65941,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65907,7 +65995,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65915,57 +66003,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65976,6 +66073,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66879,7 +66980,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66887,18 +66987,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66906,27 +67006,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66934,21 +67034,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66959,12 +67059,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66972,7 +67072,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66981,28 +67081,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67012,7 +67112,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67022,19 +67122,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67043,7 +67143,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67051,14 +67151,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67067,57 +67167,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67128,7 +67228,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67138,55 +67238,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Creare de conținut" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67195,65 +67295,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67384,7 +67484,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/ru.po b/weblate/ru.po index 2d8d863820..48d13ea3f8 100644 --- a/weblate/ru.po +++ b/weblate/ru.po @@ -98,7 +98,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: Chaosus89 \n" "Language-Team: Russian `_, или на канале ``#godotengine-doc`` на `irc.freenode.net `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Основная документация для сайта собрана в следующих разделах:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Основное" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Начало работы" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Уроки" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Разработка" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Сообщество" @@ -1365,378 +1369,432 @@ msgstr "" "существенно обновлены, но не вошли в этот документ." #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "Новые руководства, начиная с версии 3.0" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "Локализация" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Локализация" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "Новые руководства, начиная с версии 3.0" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "Пошаговое обучение" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`Сигналы `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`Экспорт `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Рабочий процесс проекта" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +#, fuzzy +msgid ":ref:`doc_android_custom_build`" msgstr "" ":ref:`Кастомизированные сборки для Андройда `" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "Лучшие практики:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Введение `" -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Что такое Godot классы `" -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Организация сцены `" -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Зависимость сцен от скриптов `" -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" +#: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Автозагрузка против внутренних узлов " "`" -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" +#: ../../docs/about/docs_changelog.rst:41 +#, fuzzy +msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Альтернативы узлам `" -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" msgstr "Интерфейсы Godot" -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Godot оповещения `" -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Настройки данных `" -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Настройки логики `" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +#, fuzzy +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Типизированный GDscript `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +#, fuzzy +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`2D освещение и тени `" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`2D сетки `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +#, fuzzy +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" ":ref:`Анимация тысячи рыб при помощи MultiMesh " "`" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +#, fuzzy +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Управление тысячами рыб с помощью Particles " "`" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Физика" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Система Ragdoll `" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" msgstr ":ref:`Мягкое тело `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`2D скелеты `" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Дерево анимаций `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "Интерфейс" -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Контейнеры `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Окна просмотра" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +#, fuzzy +msgid ":ref:`doc_viewport_as_texture`" msgstr "" ":ref:`Использование Viewport в качестве текстуры `" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Пользовательская пост-обработка `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Затенение" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +#: ../../docs/about/docs_changelog.rst:91 +#, fuzzy +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Введение в шейдеры: 2D и 3D вода (7 видео уроков) " "`" -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +#: ../../docs/about/docs_changelog.rst:92 +#, fuzzy +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Переход к языку шейдинга Godot " "`" -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr ":ref:`Продвинутая пост-обработка `" +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "Функции и Переменные" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "Ваш Первый Ряд Шейдеров:" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" +#: ../../docs/about/docs_changelog.rst:96 +#, fuzzy +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Что такое шейдеры ? `" -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" +#: ../../docs/about/docs_changelog.rst:97 +#, fuzzy +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Ваш первый CanvasItem шейдер `" -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" +#: ../../docs/about/docs_changelog.rst:98 +#, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Ваш первый Spatial шейдер `" -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" +#: ../../docs/about/docs_changelog.rst:99 +#, fuzzy +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Ваш первый Spatial шейдер. Часть 2 `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:106 msgid "Shading Reference:" msgstr "Справка по шейдингу:" -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" msgstr ":ref:`Шейдеры `" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" msgstr ":ref:`Язык шейдинга `" -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Пространственные шейдеры `" -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`Шейдеры элементов канваза `" -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Точечные шейдеры `" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:111 +#, fuzzy +msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Первоначальное обучение VR `" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Особенности разных платформ" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Пользовательская настройка веб экспорта HTML страницы " "`" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Много-поточность" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +#, fuzzy +msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`API безопасности потоков `" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Оптимизация" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +#, fuzzy +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Использование MultiMesh `" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +#, fuzzy +msgid ":ref:`doc_using_servers`" msgstr ":ref:`Использование серверов `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Разное" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +#, fuzzy +msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Исправление джиттеров и задержек `" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +#, fuzzy +msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Запуск кода в редакторе `" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +#, fuzzy +msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Изменение сцен вручную `" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +#, fuzzy +msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`Отличия между GLES3 и GLES3 `" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Легализация" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +#, fuzzy +msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Соответствие с Лицензиями `" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "Компиляция" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +#, fuzzy +msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`Оптимизация размера сборки `" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +#, fuzzy +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Компиляция с ключом шифрования скрипта " "`" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Разработка движка" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" -msgstr ":ref:`Привязка к внешним библиотекам `" +#: ../../docs/about/docs_changelog.rst:151 +#, fuzzy +msgid ":ref:`doc_binding_to_external_libraries`" +msgstr "Связывание внешних библиотек" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Создание контента" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" msgstr ":ref:`Создание деревьев `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Плагины" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Создание плагинов главного экрана `" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +#, fuzzy +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Плагины для 3D-гизмо `" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Создание плагинов для Андройд `" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -2309,7 +2367,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Редактор" @@ -2702,17 +2760,20 @@ msgstr "" "этой сцены подействуют на другие экземпляры шаров." #: ../../docs/getting_started/step_by_step/instancing.rst:107 +#, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "Вы также можете настроить отдельные экземпляры. Установите значение " "упругости обратно на ``0``, а затем на сцене ``Main`` выберите один из " "экземпляров мяча. Установите ``Bounce`` как ``1`` и нажмите \"Воспроизвести" "\"." -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2728,14 +2789,14 @@ msgstr "" "значение останется. Нажатие кнопки возврата восстановит старое значение " "свойства, как в сохраненной сцене." -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Вывод" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3660,11 +3721,12 @@ msgid "Groups" msgstr "Группы" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:90 +#, fuzzy msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Группы в Godot работают как теги, с которыми вы могли встретиться в других " "программах. Узел может находиться в стольких группах, в скольких захотите. " @@ -3913,7 +3975,7 @@ msgstr "" "скрипта." #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -5545,7 +5607,7 @@ msgstr "" "Начните с добавления новой функций ``Mob.gd``. ``queue_free()`` удалит этот " "узел в конце текущего кадра." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 msgid "" "Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` " "function, at the end." @@ -5553,7 +5615,7 @@ msgstr "" "Затем добавьте новую строку, в конец функции в ``_on_MobTimer_timeout()``, " "в ``Main.gd``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 #, fuzzy msgid "" "This line tells the new Mob node (referenced by the ``mob`` variable) to " @@ -5564,11 +5626,11 @@ msgstr "" "``start_game``, отправленные ``HUD``, исполнением функции " "``_on_start_game()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "Завершающие штрихи" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -5579,12 +5641,12 @@ msgstr "" "игрового опыта. Не стесняйтесь совершенствовать геймплей вашими собственными " "идеями." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "Фон" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5600,7 +5662,7 @@ msgstr "" "свойство: ``Color``. Выберите цвет, который вам нравится и измените размер " "``ColorRect``, так чтобы он покрывал экран." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 msgid "" "You could also add a background image, if you have one, by using a " "``Sprite`` node." @@ -5608,11 +5670,11 @@ msgstr "" "Вы можете добавить фоновое изображение (если у вас оно есть), с помощью узла " "``Sprite``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "Звуковые эффекты" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5624,7 +5686,7 @@ msgstr "" "файла: \"House In a Forest Loop.ogg\" для фоновой музыки и \"gameover.wav\", " "когда игрок проигрывает." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5636,7 +5698,7 @@ msgstr "" "``DeathSound``. На каждом из них, нажмите на кнопку ``Stream`` свойствах " "выберите \"загрузить\" и добавьте соответствующий звуковой файл." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5644,15 +5706,15 @@ msgstr "" "Для воспроизведения музыки, добавьте ``$Music.play()`` функцию в " "``new_game()`` и ``$Music.stop()`` в ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "Наконец, добавить ``$DeathSound.play()`` в ``game_over()``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "Сочетание клавиш" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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 " @@ -5662,7 +5724,7 @@ msgstr "" "могли начать игру, нажав любую клавишу. Одним из способов сделать это " "является использование свойства \"Shortcut\" узла ``Button``." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5677,7 +5739,7 @@ msgstr "" "нажмите на новый \"InputEvent\". Наконец, в свойстве _Action_ введите имя " "\"ui_select\". Это событие ввода по умолчанию, связанное с пробелом." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." @@ -5685,19 +5747,19 @@ msgstr "" "Теперь, когда появится кнопка запуска, вы можете нажать на неё или на " "пробел, чтобы начать игру." -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "Файлы проекта" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "Вы можете загрузить завершённую версию этого проекта по этим ссылкам:" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "https://github.com/kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -5801,7 +5863,7 @@ msgstr "Вот полный скрипт для игрока, с коммент #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "Экспорт шаблонов" @@ -6392,11 +6454,11 @@ msgstr "" "бесплатными. По большей части, они разрабатываются авторами с нуля." #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 +#, fuzzy msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" "Любой может подключить собственные инструменты для нужд своих проектов - они " "не будут поставляться с движком. Это может быть Nvidia PhysX, Google Admob " @@ -10371,7 +10433,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -11900,69 +11962,76 @@ msgstr "" "пользователя Unity и направлено на то, чтобы помочь вам перенести ваш " "существующий опыт Unity в мир Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "Различия" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Лицензия" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" "Собственная, закрытая, бесплатная лицензия с лимитом доходов и ограничениями " "на использование" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" "Лицензия MIT, свободная и с полным открытым исходным кодом без каких-либо " "ограничений" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "ОС (редактор)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "Windows, MacOS, Linux (неофициальные и неподдерживаемые)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "ОС (экспорт)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**ПК:** Windows, MacOS, Linux" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**Мобильный:** Android, iOS, Windows Phone, Tizen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "**Веб:** WebAssembly или asm.js" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "*Консоли:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 #, fuzzy msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " @@ -11971,45 +12040,45 @@ msgstr "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "**ТВ:** Android TV, Samsung SMART TV, tvOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "**ПК:** Windows, MacOS, X11" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "**Мобильный:** Android, iOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "**Веб:** WebAssembly" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "*Консоли* См. :ref:`doc_consoles`" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 #, fuzzy msgid "**VR:** Oculus Rift, SteamVR" msgstr "**VR:** Oculus Rift, SteamVR" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "Система сцен" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 #, fuzzy msgid "Component/Scene (GameObject > Component)" msgstr "Компонент/Сцена (GameObject > Component)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "Префабы" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" @@ -12017,82 +12086,75 @@ msgstr "" ":ref:`Древо сцен и узлы `, позволяющие сценам быть " "вложенными и/или наследовать другие сцены" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "Сторонние инструменты" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "Visual Studio или VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr ":ref:`Можно использовать внешние редакторы `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" ":ref:`Android SDK для экспорта под Android `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -#, fuzzy -msgid "Killer features" -msgstr "Важные особенности" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "Огромное сообщество" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "Большой магазин ассетов" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "Система Сцен" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 #, fuzzy msgid ":ref:`Animation Pipeline `" msgstr ":ref:`Анимационный Пайплайн `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr ":ref:`Легко написать Шейдеры `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "Отладка на устройстве" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "Редактор" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 +#, fuzzy msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" "Godot Engine предоставляет многофункциональный редактор, который позволяет " "вам создавать игры. На рисунках ниже показаны оба редактора с цветными " "блоками для обозначения общих функций." -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" -"Обратите внимание, что редактор Godot позволяет вам закрепить любую панель к " -"нужной стороне редактора." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 +#, fuzzy msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" "Хотя оба редактора могут показаться похожими на первый взгляд, но существует " "много различий. Оба варианта позволяют организовать проект с использованием " @@ -12101,26 +12163,27 @@ msgstr "" "способствует тому, что Godot гораздо дружелюбнее относится к системам VCS, " "таким как Git, Subversion или Mercurial." -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 +#, fuzzy msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" "Панель \"Сцена\" Godot аналогична панели \"Иерархия\" в Unity, но, поскольку " "каждый узел имеет свою специфическую функцию, подход, используемый Godot , " "более наглядно описывает его. Другими словами, легче понять, что делает та " "или иная сцена с первого взгляда." -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 +#, fuzzy msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" "Инспектор в Godot более минималистский и спроектирован так, чтобы показывать " "только свойства. Благодаря этому объекты могут экспортировать пользователю " @@ -12130,32 +12193,33 @@ msgstr "" "перечислений и даже ссылок на ресурсы в режиме реального времени возможно " "без использования кода." -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 +#, fuzzy msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" "Наконец, панель инструментов в верхней части экрана похожа лишь тем, что " "позволяет управлять запуском проекта, но проекты в Godot запускаются в " "отдельном окне, они не выполняются внутри редактора (но дерево и объекты все " "еще могут быть исследованы в окне отладчика)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 #, fuzzy msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" "Недостатком такого подхода является то, что запущенную игру нельзя " "исследовать с разных ракурсов (хотя это может быть поддержано в будущем, а " "уже возможно отображение столкновений предметов в запущенной игре), но в " "обмен это имеет ряд преимуществ:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." @@ -12163,7 +12227,7 @@ msgstr "" "Запуск и закрытие проекта происходит быстро (Unity же сохраняет, запускает " "проект, закрывает его, а затем перезагружает предыдущее состояние проекта)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -12175,49 +12239,54 @@ msgstr "" "не сбрасываются (и не требуют синхронизации), после закрытия. Это позволяет " "создавать невероятные вещи, такие как создание уровней во время игры." -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" "Редактор более стабилен, потому что игра запущена в отдельном процессе." -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 +#, fuzzy msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" "Наконец, верхняя панель инструментов содержит меню для удаленной отладки. " "Эти опции упрощают развертывание на устройстве (подключенном телефоне, " "планшете или браузере через HTML5), а также отладку/редактирование в " "реальном времени после экспорта игры." -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "Система сцен" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 +#, fuzzy msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" "Это самое важное различие между Unity и Godot и, на пожалуй самая любимая " "особенность для большинства пользователей Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 +#, fuzzy msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" "Система сцен Unity состоит из встраивания всех необходимых ресурсов в сцену " "и связывания их вместе путем установки компонентов и скриптов." -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 +#, fuzzy msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" "Система сцен Godot отличается тем, что на самом деле состоит из древа сцен, " "состоящего из узлов. Каждый узел имеет свое назначение: Спрайт, Сетка, Свет " @@ -12226,7 +12295,7 @@ msgstr "" "главной сцены. Это означает, что вы можете составить целую сцену с разными " "сценами, сохраненными в разных файлах." -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" @@ -12234,23 +12303,23 @@ msgstr "" "Например, подумайте об уровне в каком-нибудь платформере. Вы бы составили " "его такими элементами:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "Кирпичи" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "Монеты" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "Игрок" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "Враги" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -12266,56 +12335,65 @@ msgstr "" "логику на уровне: Например, вы бы добавили BoxCollider2D ко всем элементам " "сцены, для столкновений. Этот принцип отличается в Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 +#, fuzzy msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." msgstr "" "В Godot вы бы разделили всю сцену на 3 отдельные, небольшие сцены, которые " "затем были бы приведены в качестве экземпляра в основной сцене." -#: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#, fuzzy +msgid "**A scene for the Player alone.**" msgstr "**Сначала сцена для Игрока.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#: ../../docs/getting_started/editor/unity_to_godot.rst:115 +#, fuzzy msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" "Рассматривайте игрока как многоразовый элемент на других уровнях. Он " "состоит, в частности, из одного узла: узла AnimatedSprite, который содержит " "текстуры спрайта для формирования различных анимаций (например, анимация " "ходьбы)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#, fuzzy +msgid "**A scene for the Enemy.**" msgstr "*Вторая сцена для Врага.*" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 +#, fuzzy msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" "Опять же, враг является многоразовым элементом на других уровнях. Это почти " "то же самое, что и с узлом Player - единственное отличие заключается в " "скрипте (который, в основном, управляет ИИ) и текстурах, используемых " "AnimatedSprite." -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +#, fuzzy +msgid "**A Level scene.**" msgstr "**Последняя это сцена самого уровня.**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 +#, fuzzy msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" "Она состоит из кирпичей (для платформ), монет (которые должен ловить игрок) " "и определенного количества экземпляров сцены врага. Это будут разные, " @@ -12324,10 +12402,11 @@ msgstr "" "сцены уровня. Конечно, вы можете установить различные свойства для каждого " "узла с Врагом (например, изменить его цвет)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 +#, fuzzy msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " @@ -12339,7 +12418,7 @@ msgstr "" "или \"Node2D\" (корневой тип всех 2D-узлов), \"Spatial\" (корневой тип всех " "3D-узлов) или \"Control\" (корневой тип всех GUI-узлов)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -12355,35 +12434,37 @@ msgstr "" "столкновения. Godot имеет различные типы узлов столкновений, в зависимости " "от использования (см. :ref:`Введение в физику `)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#, fuzzy msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" "Вопрос: Каковы преимущества этой системы? Разве эта система не увеличит " "сложность древа сцены? Кроме того, Unity позволяет организовывать " "GameObjects, помещая их в пустые GameObjects." -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 +#, fuzzy msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" "Во-первых, эта система ближе к известной объектно-ориентированной парадигме: " "Godot предоставляет ряд узлов, которые не являются однозначно \"игровыми " "объектами\", но они предоставляют своим детям собственные возможности: это " "наследование." -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 +#, fuzzy msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" "Во-вторых, выделение поддерева сцены позволяет сделать из него собственную " "сцену, что отвечает на второй и третий вопросы: даже если древо сцены " @@ -12393,47 +12474,36 @@ msgstr "" "узла. Размещение нескольких узлов в пустом GameObject в Unity не дает " "одинаковых возможностей, за исключением визуальной организации." -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" -"Это наиболее важные понятия, которые вы должны запомнить: \"узел\", " -"\"родительский узел\" и \"дочерний узел\"." - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "Организация проекта" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -"Ранее мы уже отмечали, что не существует идеального решения для создания " -"структуры проекта. Любое решение будет работать на Unity и Godot, поэтому " -"этот момент не имеет большого значения." -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 +#, fuzzy msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" "Однако мы часто наблюдаем общую архитектуру для проектов Unity, состоящая из " "одной папки Assets в корневом каталоге, которая содержит различные папки, по " "одной на каждый тип ресурса: аудио, графика, модели, материалы, скрипты, " "сцены и т. д." -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 +#, fuzzy msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" "Как было сказано ранее, система сцен Godot позволяет разбивать сцены на " "сцены поменьше. Поскольку каждая сцена и под-сцена в действительности " @@ -12441,31 +12511,33 @@ msgstr "" "ваш проект немного по-другому. Вот страница вики: :ref:" "`doc_project_organization`." -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "Где мои префабы?" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 +#, fuzzy msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" "Концепция префабов, предложенная Unity, является \"шаблонным\" элементом " "сцены. Он многоразовый, и каждый экземпляр префаба, который существует в " "сцене, имеет свои особенности, но все они имеют те же самые свойства, что " "определены префабом." -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 +#, fuzzy msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" "Godot не предоставляет префабов как таковых, но их функциональность может " "быть заменена благодаря системе сцен: Как мы видели, система сцен " @@ -12476,16 +12548,17 @@ msgstr "" "Однако любые изменения, которые вы внесете в экземпляр, не будут иметь " "никакого влияния на шаблон этой сцены." -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 +#, fuzzy msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" "Если быть точным, вы можете изменить параметры экземпляра в Инспекторе. " "Однако узлы, составляющие этот экземпляр, заблокированы, хотя вы можете " @@ -12496,49 +12569,51 @@ msgstr "" "\" сцене. Если вы хотите добавить новых детей во все экземпляры вашей сцены " "'шаблона', то вам нужно добавить их в сцену 'шаблона'." -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 #, fuzzy msgid "Glossary correspondence" msgstr "Перепись глоссария" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "Игровой Объект -> Узел" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "Добавление компонента -> Наследование" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" -msgstr "Prefab -> Внешняя ветвь" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "Скриптинг: GDScript, C# и Visual Script" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "Разработка" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#, fuzzy msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" "Как вы уже знаете, Unity поддерживает C#. C# выгодный из-за интеграции с " "Visual Studio и других возможностей, таких как статическая типизация." -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 +#, fuzzy msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" "Godot предоставляет собственный скриптовый язык, :ref:`GDScript " "`, а также поддержку :ref:`Visual Script `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 #, fuzzy msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " @@ -12632,16 +12707,16 @@ msgstr "" "особенность описана в этом `документе <.../scripting/gdscript/" "gdscript_basics.html#signals>`_." -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Сериализация Скрипта" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "Unity может работать с сериализацией скриптов двумя способами:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." @@ -12649,7 +12724,7 @@ msgstr "" "Неявно: Все публичные поля в классе автоматически сериализуются, если тип " "является сериализуемым (``Dictionary``не сериализуемый)." -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." @@ -12657,7 +12732,7 @@ msgstr "" "Явно: Непубличные поля могут быть сериализованы с помощью атрибута " "``[SerializeField]``." -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 #, fuzzy msgid "" "Godot also has a built-in script serialization system, but it works only " @@ -12673,7 +12748,7 @@ msgstr "" "``export``. Этот процесс объясняется `здесь <.../scripting/gdscript/" "gdscript_basics.html#exports>`_." -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -12688,11 +12763,11 @@ msgstr "" "позволит вам создавать собственные сериализуемые объекты. Более подробную " "информацию о ресурсах можно найти :ref:`здесь `." -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "Использование C++ в Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 #, fuzzy msgid "" "Godot allows you to develop your project directly in C++ by using its API, " @@ -12705,7 +12780,7 @@ msgstr "" "в Unity. В качестве примера можно рассматривать редактор Godot Engine как " "\"игру\", написанную на языке C++ с использованием API Godot." -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -15270,11 +15345,18 @@ msgstr "" "или не сделают этого вручную). Для этого существует ключевое слово ``tool``, " "которое должно быть в верхней части файла:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "Управление памятью" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 #, fuzzy msgid "" "If a class inherits from :ref:`class_Reference`, then instances will be " @@ -15293,7 +15375,7 @@ msgstr "" "free(). Чтобы избежать циклов ссылок, которые не могут быть освобождены, для " "создания слабых ссылок предусмотрена функция ``слабых ссылок``." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 #, fuzzy msgid "" "Alternatively, when not using references, the " @@ -15303,43 +15385,102 @@ msgstr "" "Или же, если ссылки не используются, `is_instance_valid(instance)` может " "быть использован для проверки того, был ли освобожден объект." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 +#, fuzzy msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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 "" "Сигналы это способ отправки уведомлений от объекта, который могут " "прослушивать другие объекты. Создавайте собственные сигналы для класса " "используя ключевое слово ``signal``." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1490 +#, fuzzy +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 "" "Эти сигналы могут быть связаны с методами способом, схожим с тем, который вы " "используете для соединения с встроенными сигналами узлов, таких как :ref:" "`class_Button` или :ref:`class_RigidBody`." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1493 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" -"Здесь приведён пример как создавать свой сигнал в одном скрипте и соединять " -"его с методом в другом, используя метод :ref:`Object.connect() " -"`:" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1514 +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:1556 +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:1559 +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:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +#, fuzzy +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 "" "GDScript может связывать аргументы для соединения между сигналом и методом. " "Когда сигнал вызывается, вызывая соединённый метод, включённый аргумент " @@ -15347,40 +15488,34 @@ msgstr "" "отличии от сигнала или метода, что означает что каждое соединение имеет " "уникальную привязку." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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 "" -"Здесь показан пример который создаёт соединение между кнопочным сигналом " -"``pressed`` и методом, связывая экземпляр кнопки с соединением. Обработчик " -"использует связанный аргумент для вывода информации о том какой экземпляр " -"кнопки был нажат." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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 "" -"Сигналы генерируются с помощью метода :ref:`Object.emit_signal() " -"`, который способен рассылать сигнал и " -"аргументы." -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" msgstr "" -"Дополнение предыдущего примера использованием всех особенностей сигналов " -"GDScript:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 #, fuzzy msgid "Coroutines with yield" msgstr "Coroutines с yield" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 #, fuzzy msgid "" "GDScript offers support for `coroutines )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 #, fuzzy msgid "At the end of each file." msgstr "А затем файл cpp." -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 #, fuzzy msgid "Using spaces" msgstr "Инстанцирование сцен" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," -msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" +msgstr "Другие чаты" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 #, fuzzy msgid "Other considerations" msgstr "Векторные Операции" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -23041,91 +23173,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -30498,18 +30636,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -30517,11 +30671,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -30531,11 +30685,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Глубина" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -30544,34 +30698,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -30579,33 +30733,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -30613,17 +30767,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -30632,17 +30786,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -30762,7 +30916,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -31180,7 +31335,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -31256,13 +31411,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -31271,31 +31433,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Приведём главные причины:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -31303,64 +31465,64 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 #, fuzzy msgid "Adding lights" msgstr "Сложение векторов" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -31368,82 +31530,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -32050,7 +32212,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -32058,28 +32220,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -32089,7 +32251,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -32099,58 +32261,58 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 #, fuzzy msgid "Mid- and post-processing effects" msgstr "Функции и Переменные" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -32159,7 +32321,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -32167,52 +32329,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -32222,28 +32384,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -32251,47 +32413,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -32300,65 +32462,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -32368,27 +32530,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -32396,78 +32558,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -33813,23 +33975,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -33837,32 +33999,32 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "Рассмотрим все переменные класса:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "``GRAVITY``: С какой силой гравитация притягивает к земле." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "``vel``: Скорость нашего :ref:`KinematicBody `." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." @@ -33870,11 +34032,11 @@ msgstr "" "``MAX_SPEED``: Наибольшая скорость которой мы можем достигнуть. Больше этого " "значения она подниматься не будет." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "``JUMP_SPEED``: Как высоко мы можем прыгать." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." @@ -33882,7 +34044,7 @@ msgstr "" "``ACCEL``: Как быстро мы набираем скорость. Чем выше это значение, тем " "быстрее мы достигнем максимальной скорости." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 #, fuzzy msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " @@ -33891,43 +34053,43 @@ msgstr "" "``DEACCEL``: Как быстро мы теряем скорость. Чем выше значение, тем быстрее " "мы остановимся." -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -33936,30 +34098,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -33967,120 +34129,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -34088,13 +34250,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -34102,44 +34264,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -34147,14 +34309,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -34163,37 +34325,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -34201,7 +34363,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -34210,7 +34372,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -34218,7 +34380,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -34226,12 +34388,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -34239,30 +34401,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -34270,30 +34432,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -34301,14 +34463,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -34316,86 +34478,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -34403,62 +34565,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -34467,7 +34629,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -34475,44 +34637,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -34522,32 +34684,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -34557,7 +34719,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -41876,7 +42038,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -41887,99 +42049,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -41987,11 +42149,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -42002,26 +42164,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -42030,7 +42192,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -42824,7 +42986,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "Примеры" @@ -48627,10 +48789,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "Локализация" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -57379,7 +57537,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -68621,6 +68779,10 @@ msgstr "" "\"Pause Mode\" в ноде:" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -68638,11 +68800,11 @@ msgstr "" "будет использовано состояние SceneTree/ Это означает, что по умолчанию, " "когда игра ставится на паузу каждая нода будет остановлена." -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "Существует три возможных состояния для ноды:" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." @@ -68650,7 +68812,7 @@ msgstr "" "**Inherit**: Процесс зависит от состояния родителя, родителя-родителя, итд. " "Т.е первый родитель который будет иметь не-Inherit состояние." -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." @@ -68658,7 +68820,7 @@ msgstr "" "**Stop**: Останавливает ноду в любом случае (и потомков в состоянии " "Inherit). Когда пауза происходит эта нода не будет обрабатываться." -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." @@ -68666,7 +68828,7 @@ msgstr "" "**Process**: Обрабатывать эту ноду в любом случае (и потомков в состоянии " "Inherit). Вне зависимости от паузы эта нода будет обрабатываться." -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" @@ -68674,7 +68836,7 @@ msgstr "" "Например создадим поп-ап или панель с элементами управления внутри, " "установим режим паузы в \"Process\" а затем скроем её:" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " @@ -68684,7 +68846,7 @@ msgstr "" "потомки потомков будут наследовать это состояние. Таким образом, эта часть " "дерева сцены продолжит работу во время паузы." -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." @@ -68692,11 +68854,11 @@ msgstr "" "Наконец, сделайте так чтобы нажатая кнопка паузы (любая кнопка подойдёт), " "включала паузу и показывала экран паузы." -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "Для отключения паузы, сделайте обратное когда экран паузы закрывается:" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "Вот и всё!" @@ -70739,9 +70901,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -70772,7 +70934,7 @@ msgstr "Сторонние инструменты" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -70801,7 +70963,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -70825,9 +70987,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -71353,7 +71515,7 @@ msgid "`SCons `__ build system." msgstr "`SCons `__ система сборки." #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -71686,7 +71848,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -71847,17 +72009,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -71866,7 +72027,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -71939,7 +72100,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -71968,12 +72129,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -71993,57 +72153,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -72051,7 +72207,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -72059,57 +72215,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -72120,6 +72285,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -73025,7 +73194,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -73033,19 +73201,19 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 #, fuzzy msgid "Environment variables" msgstr "Функции и Переменные" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -73053,27 +73221,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -73081,21 +73249,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -73106,12 +73274,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -73119,7 +73287,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -73128,28 +73296,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -73159,7 +73327,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -73169,20 +73337,20 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "Пример (Windows)" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 #, fuzzy msgid "Example (X11)" msgstr "Пример (Windows)" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -73191,7 +73359,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -73199,14 +73367,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -73215,57 +73383,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -73276,7 +73444,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -73286,55 +73454,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Создание простого плагина" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -73343,66 +73511,66 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 #, fuzzy msgid "Command-line options" msgstr "Условие" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -73533,7 +73701,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" @@ -79920,6 +80088,78 @@ msgstr "" "`Zeef Godot Engine: Курируемая директория ресурсов от Andre Schmitz `_" +#~ msgid ":ref:`Advanced post-processing `" +#~ msgstr ":ref:`Продвинутая пост-обработка `" + +#~ msgid "" +#~ ":ref:`Binding to external libraries `" +#~ msgstr ":ref:`Привязка к внешним библиотекам `" + +#, fuzzy +#~ msgid "Killer features" +#~ msgstr "Важные особенности" + +#~ msgid "" +#~ "Note that Godot editor allows you to dock each panel at the side of the " +#~ "scene editor you wish." +#~ msgstr "" +#~ "Обратите внимание, что редактор Godot позволяет вам закрепить любую " +#~ "панель к нужной стороне редактора." + +#~ msgid "" +#~ "These are the most important concepts you need to remember: \"node\", " +#~ "\"parent node\", and \"child node\"." +#~ msgstr "" +#~ "Это наиболее важные понятия, которые вы должны запомнить: \"узел\", " +#~ "\"родительский узел\" и \"дочерний узел\"." + +#~ msgid "" +#~ "We previously observed that there is no perfect solution to set a project " +#~ "architecture. Any solution will work for Unity and Godot, so this point " +#~ "has a lesser importance." +#~ msgstr "" +#~ "Ранее мы уже отмечали, что не существует идеального решения для создания " +#~ "структуры проекта. Любое решение будет работать на Unity и Godot, поэтому " +#~ "этот момент не имеет большого значения." + +#~ msgid "Prefab -> Externalized branch" +#~ msgstr "Prefab -> Внешняя ветвь" + +#~ msgid "" +#~ "Here's an example that creates a custom signal in one script and connects " +#~ "the custom signal to a method in a separate script, using the :ref:" +#~ "`Object.connect() ` method:" +#~ msgstr "" +#~ "Здесь приведён пример как создавать свой сигнал в одном скрипте и " +#~ "соединять его с методом в другом, используя метод :ref:`Object.connect() " +#~ "`:" + +#~ msgid "" +#~ "Here is an example that creates a connection between a button's " +#~ "``pressed`` signal and a method, binding the button instance to the " +#~ "connection. The handler uses the bound argument to print which button " +#~ "instance was pressed." +#~ msgstr "" +#~ "Здесь показан пример который создаёт соединение между кнопочным сигналом " +#~ "``pressed`` и методом, связывая экземпляр кнопки с соединением. " +#~ "Обработчик использует связанный аргумент для вывода информации о том " +#~ "какой экземпляр кнопки был нажат." + +#~ msgid "" +#~ "Signals are generated by the :ref:`Object.emit_signal() " +#~ "` method which broadcasts the signal and " +#~ "arguments." +#~ msgstr "" +#~ "Сигналы генерируются с помощью метода :ref:`Object.emit_signal() " +#~ "`, который способен рассылать сигнал и " +#~ "аргументы." + +#~ msgid "" +#~ "Extending a previous example to use all the features of GDScript signals:" +#~ msgstr "" +#~ "Дополнение предыдущего примера использованием всех особенностей сигналов " +#~ "GDScript:" + #, fuzzy #~ msgid "" #~ "Collision shapes can be added to the tiles in a tileset to create solid " diff --git a/weblate/sk.po b/weblate/sk.po index 6ca87179dc..0aa48de75b 100644 --- a/weblate/sk.po +++ b/weblate/sk.po @@ -9,7 +9,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-06-15 04:55+0000\n" "Last-Translator: Michal \n" "Language-Team: Slovak `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Hlavná dokumentácia pre túto stránku je organizovaná v nasledujúcich " "sekciách:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Hlavné" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutoriály" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Vývoj" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Komunita" @@ -983,360 +987,357 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +msgid ":ref:`doc_android_plugin`" msgstr "" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -1799,7 +1800,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2094,11 +2095,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2108,14 +2111,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2795,8 +2798,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2974,7 +2977,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4174,36 +4177,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4213,17 +4216,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4231,7 +4234,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4239,28 +4242,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4270,25 +4273,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4365,7 +4368,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4788,9 +4791,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7552,7 +7554,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8636,223 +8638,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licencia" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8860,65 +8862,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8928,59 +8931,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -8990,142 +8995,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9133,7 +9129,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9141,30 +9137,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9172,7 +9167,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9180,27 +9175,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9209,7 +9204,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9218,11 +9213,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9230,7 +9225,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11323,11 +11318,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11338,67 +11340,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11408,43 +11472,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11452,7 +11516,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11460,11 +11524,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -11976,7 +12040,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14062,7 +14126,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14891,10 +14955,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14909,273 +14972,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18142,91 +18202,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25445,18 +25511,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25464,11 +25546,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25478,11 +25560,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25491,34 +25573,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25526,33 +25608,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25560,17 +25642,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25579,17 +25661,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25709,7 +25791,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26126,7 +26209,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26201,13 +26284,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26216,30 +26306,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26247,63 +26337,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26311,82 +26401,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -26983,7 +27073,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -26991,28 +27081,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27022,7 +27112,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27032,57 +27122,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27091,7 +27181,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27099,52 +27189,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27154,28 +27244,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27183,47 +27273,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27232,65 +27322,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27300,27 +27390,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27328,78 +27418,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28639,23 +28729,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28663,90 +28753,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28755,30 +28845,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28786,120 +28876,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28907,13 +28997,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28921,44 +29011,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -28966,14 +29056,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -28982,37 +29072,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29020,7 +29110,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29029,7 +29119,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29037,7 +29127,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29045,12 +29135,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29058,30 +29148,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29089,30 +29179,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29120,14 +29210,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29135,86 +29225,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29222,62 +29312,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29286,7 +29376,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29294,44 +29384,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29341,32 +29431,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29376,7 +29466,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36668,7 +36758,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36679,99 +36769,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36779,11 +36869,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36794,26 +36884,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36822,7 +36912,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37613,7 +37703,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43219,10 +43309,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51866,7 +51952,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62683,6 +62769,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62693,52 +62783,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64563,9 +64653,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64594,7 +64684,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64622,7 +64712,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64646,9 +64736,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65053,7 +65143,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65339,7 +65429,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65500,17 +65590,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65519,7 +65608,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65592,7 +65681,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65621,12 +65710,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65646,57 +65734,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65704,7 +65788,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65712,57 +65796,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65773,6 +65866,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66676,7 +66773,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66684,18 +66780,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66703,27 +66799,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66731,21 +66827,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66756,12 +66852,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66769,7 +66865,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66778,28 +66874,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66809,7 +66905,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66819,19 +66915,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66840,7 +66936,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66848,14 +66944,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66864,57 +66960,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66925,7 +67021,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -66935,54 +67031,54 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 msgid "Targeting Android" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -66991,65 +67087,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67180,7 +67276,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/sl.po b/weblate/sl.po index c4dc6b957e..fe1dfae84e 100644 --- a/weblate/sl.po +++ b/weblate/sl.po @@ -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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2018-06-26 13:44+0000\n" "Last-Translator: matevž lapajne \n" "Language-Team: Slovenian `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Skupnost" @@ -1101,362 +1105,362 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "Animacija" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animacija" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animacija" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Vtičniki" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Animacija" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1918,7 +1922,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Urejevalnik" @@ -2213,11 +2217,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2227,14 +2233,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2914,8 +2920,8 @@ msgstr "Skupine" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3093,7 +3099,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4296,36 +4302,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4335,17 +4341,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4353,7 +4359,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4361,28 +4367,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4392,25 +4398,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4487,7 +4493,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4911,9 +4917,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7675,7 +7680,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8760,223 +8765,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Licenca" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8984,65 +8989,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9052,59 +9058,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9114,142 +9122,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9257,7 +9256,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9265,30 +9264,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9296,7 +9294,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9304,28 +9302,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Animacija" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9334,7 +9332,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9343,11 +9341,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9355,7 +9353,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11451,11 +11449,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11466,67 +11471,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11536,43 +11603,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11580,7 +11647,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11588,11 +11655,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12105,7 +12172,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14192,7 +14259,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15024,10 +15091,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15042,273 +15108,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18286,91 +18349,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25602,18 +25671,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25621,11 +25706,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25635,11 +25720,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Globina" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25648,34 +25733,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25683,33 +25768,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25717,17 +25802,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25736,17 +25821,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25866,7 +25951,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26283,7 +26369,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26358,13 +26444,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26373,31 +26466,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Glavni razlogi so:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26405,63 +26498,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26469,82 +26562,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27142,7 +27235,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27150,28 +27243,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27181,7 +27274,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27191,57 +27284,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27250,7 +27343,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27258,52 +27351,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27313,28 +27406,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27342,47 +27435,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27391,65 +27484,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27459,27 +27552,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27487,78 +27580,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28799,23 +28892,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28823,90 +28916,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28915,30 +29008,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28946,120 +29039,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29067,13 +29160,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29081,44 +29174,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29126,14 +29219,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29142,37 +29235,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29180,7 +29273,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29189,7 +29282,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29197,7 +29290,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29205,12 +29298,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29218,30 +29311,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29249,30 +29342,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29280,14 +29373,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29295,86 +29388,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29382,62 +29475,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29446,7 +29539,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29454,44 +29547,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29501,32 +29594,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29536,7 +29629,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36830,7 +36923,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36841,99 +36934,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36941,11 +37034,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36956,26 +37049,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36984,7 +37077,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37777,7 +37870,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43396,10 +43489,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52049,7 +52138,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62878,6 +62967,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62888,52 +62981,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64760,9 +64853,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64791,7 +64884,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64819,7 +64912,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64843,9 +64936,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65250,7 +65343,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65536,7 +65629,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65697,17 +65790,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65716,7 +65808,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65789,7 +65881,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65818,12 +65910,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65843,57 +65934,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65901,7 +65988,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65909,57 +65996,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65970,6 +66066,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66873,7 +66973,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66881,18 +66980,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66900,27 +66999,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66928,21 +67027,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66953,12 +67052,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66966,7 +67065,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66975,28 +67074,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67006,7 +67105,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67016,19 +67115,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67037,7 +67136,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67045,14 +67144,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67061,57 +67160,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67122,7 +67221,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67132,55 +67231,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Animacija" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67189,65 +67288,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67378,7 +67477,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/sr_Latn.po b/weblate/sr_Latn.po index d8dc9cce9d..1235aa71f7 100644 --- a/weblate/sr_Latn.po +++ b/weblate/sr_Latn.po @@ -11,7 +11,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2018-12-13 10:15+0000\n" "Last-Translator: Vojislav Bajakic \n" "Language-Team: Serbian (latin) `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Glavna dokumentacija za sajt je podeljena na sledeća poglavlja:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Opšti deo" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Uvod / Početak" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Tutorijali" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Razvoj" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Zajednica" @@ -1078,362 +1082,361 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Kreiranje Sadržaja" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Kreiranje Sadržaja" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Kreiranje Sadržaja" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1895,7 +1898,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2190,11 +2193,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2204,14 +2209,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2891,8 +2896,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3070,7 +3075,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4270,36 +4275,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4309,17 +4314,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4327,7 +4332,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4335,28 +4340,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4366,25 +4371,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4461,7 +4466,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4884,9 +4889,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7648,7 +7652,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8733,223 +8737,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8957,65 +8961,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9025,59 +9030,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9087,142 +9094,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9230,7 +9228,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9238,30 +9236,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9269,7 +9266,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9277,27 +9274,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9306,7 +9303,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9315,11 +9312,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9327,7 +9324,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11422,11 +11419,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11437,67 +11441,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11507,43 +11573,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11551,7 +11617,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11559,11 +11625,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12075,7 +12141,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14162,7 +14228,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14992,10 +15058,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15010,273 +15075,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18245,91 +18307,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25551,18 +25619,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25570,11 +25654,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25584,11 +25668,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25597,34 +25681,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25632,33 +25716,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25666,17 +25750,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25685,17 +25769,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25815,7 +25899,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26232,7 +26317,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26307,13 +26392,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26322,30 +26414,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26353,63 +26445,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26417,82 +26509,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27089,7 +27181,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27097,28 +27189,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27128,7 +27220,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27138,57 +27230,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27197,7 +27289,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27205,52 +27297,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27260,28 +27352,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27289,47 +27381,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27338,65 +27430,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27406,27 +27498,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27434,78 +27526,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28746,23 +28838,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28770,90 +28862,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28862,30 +28954,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28893,120 +28985,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29014,13 +29106,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29028,44 +29120,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29073,14 +29165,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29089,37 +29181,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29127,7 +29219,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29136,7 +29228,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29144,7 +29236,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29152,12 +29244,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29165,30 +29257,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29196,30 +29288,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29227,14 +29319,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29242,86 +29334,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29329,62 +29421,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29393,7 +29485,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29401,44 +29493,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29448,32 +29540,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29483,7 +29575,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36775,7 +36867,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36786,99 +36878,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36886,11 +36978,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36901,26 +36993,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36929,7 +37021,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37720,7 +37812,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43334,10 +43426,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51985,7 +52073,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62810,6 +62898,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62820,52 +62912,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64690,9 +64782,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64721,7 +64813,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64749,7 +64841,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64773,9 +64865,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65180,7 +65272,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65466,7 +65558,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65627,17 +65719,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65646,7 +65737,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65719,7 +65810,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65748,12 +65839,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65773,57 +65863,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65831,7 +65917,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65839,57 +65925,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65900,6 +65995,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66803,7 +66902,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66811,18 +66909,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66830,27 +66928,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66858,21 +66956,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66883,12 +66981,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66896,7 +66994,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66905,28 +67003,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66936,7 +67034,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66946,19 +67044,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66967,7 +67065,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66975,14 +67073,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66991,57 +67089,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67052,7 +67150,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67062,55 +67160,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Kreiranje Sadržaja" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67119,65 +67217,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67308,7 +67406,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/sv.po b/weblate/sv.po index b5d44513a9..49c1f35d8b 100644 --- a/weblate/sv.po +++ b/weblate/sv.po @@ -14,7 +14,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-03-28 08:40+0000\n" "Last-Translator: Toiya \n" "Language-Team: Swedish `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Dokumentationen på sidan är indelad i följande delar:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Allmänt" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Komma igång" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Guider" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Utveckling" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Community" @@ -1118,362 +1122,361 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Skapa innehåll" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Skapa innehåll" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1935,7 +1938,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2230,11 +2233,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2244,14 +2249,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2931,8 +2936,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3110,7 +3115,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4310,36 +4315,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4349,17 +4354,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4367,7 +4372,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4375,28 +4380,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4406,25 +4411,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4501,7 +4506,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4925,9 +4930,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7718,7 +7722,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8802,223 +8806,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9026,65 +9030,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9094,59 +9099,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9156,142 +9163,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9299,7 +9297,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9307,30 +9305,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9338,7 +9335,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9346,27 +9343,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9375,7 +9372,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9384,11 +9381,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9396,7 +9393,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11490,11 +11487,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11505,67 +11509,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11575,43 +11641,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11619,7 +11685,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11627,11 +11693,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12143,7 +12209,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14232,7 +14298,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15061,10 +15127,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15080,273 +15145,270 @@ msgid "Formatting conventions" msgstr "Skapa innehåll" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18316,91 +18378,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25624,18 +25692,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25643,11 +25727,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25657,11 +25741,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25670,34 +25754,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25705,33 +25789,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25739,17 +25823,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25758,17 +25842,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25888,7 +25972,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26305,7 +26390,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26380,13 +26465,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26395,30 +26487,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26426,63 +26518,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26490,82 +26582,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27162,7 +27254,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27170,28 +27262,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27201,7 +27293,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27211,57 +27303,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27270,7 +27362,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27278,52 +27370,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27333,28 +27425,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27362,47 +27454,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27411,65 +27503,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27479,27 +27571,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27507,78 +27599,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28819,23 +28911,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28843,90 +28935,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28935,30 +29027,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28966,120 +29058,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29087,13 +29179,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29101,44 +29193,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29146,14 +29238,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29162,37 +29254,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29200,7 +29292,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29209,7 +29301,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29217,7 +29309,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29225,12 +29317,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29238,30 +29330,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29269,30 +29361,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29300,14 +29392,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29315,86 +29407,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29402,62 +29494,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29466,7 +29558,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29474,44 +29566,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29521,32 +29613,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29556,7 +29648,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36850,7 +36942,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36861,99 +36953,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36961,11 +37053,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36976,26 +37068,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37004,7 +37096,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37795,7 +37887,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43412,10 +43504,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52063,7 +52151,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62887,6 +62975,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62897,52 +62989,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64767,9 +64859,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64798,7 +64890,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64827,7 +64919,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64851,9 +64943,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65258,7 +65350,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65544,7 +65636,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65705,17 +65797,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65724,7 +65815,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65797,7 +65888,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65826,12 +65917,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65851,57 +65941,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65909,7 +65995,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65917,57 +66003,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65978,6 +66073,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66881,7 +66980,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66889,18 +66987,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66908,27 +67006,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66936,21 +67034,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66961,12 +67059,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66974,7 +67072,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66983,28 +67081,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67014,7 +67112,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67024,19 +67122,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67045,7 +67143,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67053,14 +67151,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67069,57 +67167,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67130,7 +67228,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67140,55 +67238,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Skapa innehåll" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67197,65 +67295,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67386,7 +67484,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/te.po b/weblate/te.po index c95c7377d0..0a6864b5aa 100644 --- a/weblate/te.po +++ b/weblate/te.po @@ -9,7 +9,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-01-20 08:54+0000\n" "Last-Translator: suresh p \n" "Language-Team: Telugu `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "ప్రధాన డాక్యుమెంటేషన్ ఈ క్రింది విభాగాలలో నిర్వహించబడినది :" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "సాధారణ" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "మొదలు పెట్టడానికి" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "ట్యుటోరియల్స్" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 #, fuzzy msgid "Development" msgstr "అభివృద్ధి పరచడం" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "సంఘం" @@ -967,362 +971,361 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "కంటెంట్ ను సృష్టించడం" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "కంటెంట్ ను సృష్టించడం" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "కంటెంట్ ను సృష్టించడం" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1784,7 +1787,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2079,11 +2082,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2093,14 +2098,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2780,8 +2785,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -2959,7 +2964,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4159,36 +4164,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4198,17 +4203,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4216,7 +4221,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4224,28 +4229,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4255,25 +4260,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4350,7 +4355,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4773,9 +4778,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7537,7 +7541,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8621,223 +8625,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8845,65 +8849,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -8913,59 +8918,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -8975,142 +8982,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9118,7 +9116,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9126,30 +9124,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9157,7 +9154,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9165,27 +9162,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9194,7 +9191,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9203,11 +9200,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9215,7 +9212,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11308,11 +11305,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11323,67 +11327,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11393,43 +11459,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11437,7 +11503,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11445,11 +11511,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -11961,7 +12027,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14049,7 +14115,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -14878,10 +14944,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -14897,273 +14962,270 @@ msgid "Formatting conventions" msgstr "కంటెంట్ ను సృష్టించడం" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18131,91 +18193,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25437,18 +25505,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25456,11 +25540,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25470,11 +25554,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25483,34 +25567,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25518,33 +25602,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25552,17 +25636,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25571,17 +25655,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25701,7 +25785,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26118,7 +26203,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26193,13 +26278,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26208,30 +26300,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26239,63 +26331,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26303,82 +26395,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -26975,7 +27067,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -26983,28 +27075,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27014,7 +27106,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27024,57 +27116,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27083,7 +27175,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27091,52 +27183,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27146,28 +27238,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27175,47 +27267,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27224,65 +27316,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27292,27 +27384,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27320,78 +27412,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28632,23 +28724,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28656,90 +28748,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28748,30 +28840,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28779,120 +28871,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -28900,13 +28992,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -28914,44 +29006,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -28959,14 +29051,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -28975,37 +29067,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29013,7 +29105,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29022,7 +29114,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29030,7 +29122,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29038,12 +29130,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29051,30 +29143,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29082,30 +29174,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29113,14 +29205,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29128,86 +29220,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29215,62 +29307,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29279,7 +29371,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29287,44 +29379,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29334,32 +29426,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29369,7 +29461,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36662,7 +36754,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36673,99 +36765,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36773,11 +36865,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36788,26 +36880,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -36816,7 +36908,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37607,7 +37699,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43224,10 +43316,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -51874,7 +51962,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62695,6 +62783,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62705,52 +62797,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64574,9 +64666,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64605,7 +64697,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64633,7 +64725,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64657,9 +64749,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65064,7 +65156,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65350,7 +65442,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65511,17 +65603,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65530,7 +65621,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65603,7 +65694,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65632,12 +65723,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65657,57 +65747,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65715,7 +65801,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65723,57 +65809,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65784,6 +65879,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66687,7 +66786,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66695,18 +66793,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66714,27 +66812,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66742,21 +66840,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66767,12 +66865,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66780,7 +66878,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66789,28 +66887,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -66820,7 +66918,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -66830,19 +66928,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -66851,7 +66949,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -66859,14 +66957,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -66875,57 +66973,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -66936,7 +67034,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -66946,55 +67044,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "కంటెంట్ ను సృష్టించడం" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67003,65 +67101,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67192,7 +67290,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/th.po b/weblate/th.po index 2a0ea1626a..8b2b81bf56 100644 --- a/weblate/th.po +++ b/weblate/th.po @@ -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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2018-04-17 12:41+0000\n" "Last-Translator: Poommetee Ketson \n" "Language-Team: Thai `_!" msgstr "" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "" @@ -1114,362 +1118,364 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" +msgstr "เงื่อนไข" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" +msgstr "ดูได้ที่ :ref:`doc_ways_to_contribute`" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" +msgstr "ดูได้ที่ :ref:`doc_ways_to_contribute`" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "การใช้ใน GDScript" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "การใช้ใน GDScript" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "แอนดรอยด์" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1931,7 +1937,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "" @@ -2227,11 +2233,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2241,14 +2249,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2928,8 +2936,8 @@ msgstr "" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3107,7 +3115,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4311,36 +4319,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4350,17 +4358,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4368,7 +4376,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4376,28 +4384,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4407,25 +4415,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4502,7 +4510,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4925,9 +4933,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7689,7 +7696,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8774,224 +8781,224 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 #, fuzzy msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "X11 (ลินุกซ์, \\*บีเอสดี)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -8999,65 +9006,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9067,59 +9075,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9129,142 +9139,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9272,7 +9273,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9280,30 +9281,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9311,7 +9311,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9319,27 +9319,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9348,7 +9348,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9357,11 +9357,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9369,7 +9369,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11471,11 +11471,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11486,67 +11493,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11556,43 +11625,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11600,7 +11669,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11608,11 +11677,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12124,7 +12193,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14265,7 +14334,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15098,10 +15167,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15116,273 +15184,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18358,91 +18423,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25677,18 +25748,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25696,11 +25783,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25710,11 +25797,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25723,34 +25810,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25758,33 +25845,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25792,17 +25879,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25811,17 +25898,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25941,7 +26028,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26358,7 +26446,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26433,13 +26521,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26448,31 +26543,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "เหตุผลมีดังต่อไปนี้:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26480,63 +26575,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26544,82 +26639,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27218,7 +27313,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27226,28 +27321,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27257,7 +27352,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27267,57 +27362,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27326,7 +27421,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27334,52 +27429,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27389,28 +27484,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27418,47 +27513,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27467,65 +27562,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27535,27 +27630,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27563,78 +27658,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28876,23 +28971,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28900,90 +28995,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28992,30 +29087,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -29023,120 +29118,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29144,13 +29239,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29158,44 +29253,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29203,14 +29298,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29219,37 +29314,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29257,7 +29352,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29266,7 +29361,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29274,7 +29369,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29282,12 +29377,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29295,30 +29390,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29326,30 +29421,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29357,14 +29452,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29372,86 +29467,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29459,62 +29554,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29523,7 +29618,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29531,44 +29626,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29578,32 +29673,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29613,7 +29708,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36907,7 +37002,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36918,99 +37013,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -37018,11 +37113,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -37033,26 +37128,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37061,7 +37156,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37852,7 +37947,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43473,10 +43568,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52128,7 +52219,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62959,6 +63050,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62969,52 +63064,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64840,9 +64935,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64871,7 +64966,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64899,7 +64994,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64923,9 +65018,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65330,7 +65425,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65616,7 +65711,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65777,17 +65872,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65796,7 +65890,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65869,7 +65963,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65898,12 +65992,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65923,57 +66016,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65981,7 +66070,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65989,57 +66078,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -66050,6 +66148,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66953,7 +67055,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66961,18 +67062,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66980,27 +67081,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -67008,21 +67109,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -67033,12 +67134,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -67046,7 +67147,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -67055,28 +67156,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67086,7 +67187,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67096,19 +67197,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67117,7 +67218,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67125,14 +67226,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67141,57 +67242,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67202,7 +67303,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67212,55 +67313,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "การใช้ใน GDScript" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67269,66 +67370,66 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 #, fuzzy msgid "Command-line options" msgstr "เงื่อนไข" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67459,7 +67560,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/tr.po b/weblate/tr.po index 322e30ba4c..195fc8fecb 100644 --- a/weblate/tr.po +++ b/weblate/tr.po @@ -28,7 +28,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-04-29 11:48+0000\n" "Last-Translator: Anton Semchenko \n" "Language-Team: Turkish `_ bizlerle sohbete katıl!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Site için olan ana belgeleme, şu bölümlere tertiplendi:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Genel" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Başlarken" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Öğreticiler" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Geliştirme" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Topluluk" @@ -1170,363 +1174,366 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 +msgid "New tutorials since version 3.1" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "Uluslararasılaşma" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Yerelleştirme" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "Animasyon" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" +msgstr "Koşul" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Animasyon" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr "Parçacıklar" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animasyon" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "İçerik Oluşturma" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Eklentiler" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Animasyonlar" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1988,7 +1995,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Düzenleyici" @@ -2283,11 +2290,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2297,14 +2306,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2984,8 +2993,8 @@ msgstr "Gruplar" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3163,7 +3172,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4369,36 +4378,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4408,17 +4417,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4426,7 +4435,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4434,28 +4443,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4465,26 +4474,26 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 #, fuzzy msgid "Project files" msgstr "Kesitçi" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4561,7 +4570,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4986,9 +4995,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7750,7 +7758,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8835,223 +8843,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Lisans" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9059,65 +9067,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9127,59 +9136,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9189,142 +9200,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9332,7 +9334,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9340,30 +9342,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9371,7 +9372,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9379,28 +9380,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Animasyon" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9409,7 +9410,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9418,11 +9419,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9430,7 +9431,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11528,11 +11529,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11543,67 +11551,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11613,43 +11683,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11657,7 +11727,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11665,11 +11735,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12182,7 +12252,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14271,7 +14341,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15106,10 +15176,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15125,273 +15194,270 @@ msgid "Formatting conventions" msgstr "İçerik Oluşturma" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18375,91 +18441,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25697,18 +25769,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25716,11 +25804,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25730,11 +25818,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Derinlik" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25743,34 +25831,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25778,33 +25866,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25812,17 +25900,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25831,17 +25919,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25961,7 +26049,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26378,7 +26467,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26453,13 +26542,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26468,31 +26564,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Ana nedenler:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26500,63 +26596,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26564,82 +26660,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27238,7 +27334,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27246,28 +27342,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27277,7 +27373,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27287,57 +27383,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27346,7 +27442,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27354,52 +27450,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27409,28 +27505,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27438,47 +27534,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27487,65 +27583,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27555,27 +27651,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27583,78 +27679,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28896,23 +28992,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28920,90 +29016,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -29012,30 +29108,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -29043,120 +29139,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29164,13 +29260,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29178,44 +29274,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29223,14 +29319,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29239,37 +29335,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29277,7 +29373,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29286,7 +29382,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29294,7 +29390,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29302,12 +29398,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29315,30 +29411,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29346,30 +29442,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29377,14 +29473,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29392,86 +29488,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29479,62 +29575,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29543,7 +29639,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29551,44 +29647,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29598,32 +29694,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29633,7 +29729,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36927,7 +37023,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36938,99 +37034,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -37038,11 +37134,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -37053,26 +37149,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37081,7 +37177,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37874,7 +37970,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43499,10 +43595,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "Uluslararasılaşma" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52157,7 +52249,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62992,6 +63084,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -63002,52 +63098,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64877,9 +64973,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64908,7 +65004,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64937,7 +65033,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64961,9 +65057,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65368,7 +65464,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65654,7 +65750,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65815,17 +65911,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65834,7 +65929,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65907,7 +66002,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65936,12 +66031,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65961,57 +66055,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -66019,7 +66109,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -66027,57 +66117,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -66088,6 +66187,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66991,7 +67094,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66999,18 +67101,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -67018,27 +67120,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -67046,21 +67148,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -67071,12 +67173,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -67084,7 +67186,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -67093,28 +67195,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67124,7 +67226,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67134,19 +67236,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67155,7 +67257,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67163,14 +67265,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67179,57 +67281,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67240,7 +67342,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67250,55 +67352,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Animasyonlar" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67307,66 +67409,66 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 #, fuzzy msgid "Command-line options" msgstr "Koşul" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67497,7 +67599,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/uk.po b/weblate/uk.po index 21c33608b4..8db89c92cf 100644 --- a/weblate/uk.po +++ b/weblate/uk.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Основна документація на сайті складається з наступних розділів:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Загальне" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Перші кроки" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Навчальні посібники" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Розробка" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Спільнота" @@ -1219,375 +1223,394 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 +msgid "New tutorials since version 3.1" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "Інтернаціоналізація" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "Локалізація" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 #, fuzzy msgid "Step-by-step" msgstr "Крок-за-кроком" -#: ../../docs/about/docs_changelog.rst:19 +#: ../../docs/about/docs_changelog.rst:27 #, fuzzy -msgid ":ref:`Signals `" +msgid ":ref:`doc_signals`" msgstr ":ref:`Basis `" -#: ../../docs/about/docs_changelog.rst:20 +#: ../../docs/about/docs_changelog.rst:28 #, fuzzy -msgid ":ref:`Exporting `" +msgid ":ref:`doc_exporting`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 #, fuzzy msgid "Best Practices:" msgstr "Оптимальні варіанти" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" +msgstr "Організація" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" +msgstr "Сповіщення" + +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" +msgstr "Посилання" + +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" +msgstr "Посилання" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "Двовимірна графіка (2D)" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" +msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "Тривимірна графіка (3D)" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:61 #, fuzzy -msgid ":ref:`CSG `" +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Фізика" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" +msgstr "Файлова система" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" +msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" +msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" +msgstr "Див. :ref:`doc_ways_to_contribute`." -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "Інтерфейс" -#: ../../docs/about/docs_changelog.rst:72 +#: ../../docs/about/docs_changelog.rst:80 #, fuzzy -msgid ":ref:`Containers `" +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Панелі перегляду" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" +msgstr "Змінні середовища" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Затінювання" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "Змінні середовища" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy -msgid ":ref:`What are shaders? `" +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" +#: ../../docs/about/docs_changelog.rst:97 +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 +msgid ":ref:`doc_your_first_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 #, fuzzy msgid "Shading Reference:" msgstr "Зразок" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:102 #, fuzzy -msgid ":ref:`Shaders `" +msgid ":ref:`doc_shaders`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "Віртуальна реальність (VR)" - #: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" +msgstr ":ref:`RID`" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" +msgstr ":ref:`RID`" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "Віртуальна реальність (VR)" + +#: ../../docs/about/docs_changelog.rst:111 +#, fuzzy +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "Відеопідручники" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" +msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 #, fuzzy msgid "Multi-threading" msgstr "Багаторядковий рядок" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Анімація" -#: ../../docs/about/docs_changelog.rst:118 +#: ../../docs/about/docs_changelog.rst:126 #, fuzzy -msgid ":ref:`Using MultiMesh `" +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Basis `" -#: ../../docs/about/docs_changelog.rst:119 +#: ../../docs/about/docs_changelog.rst:127 #, fuzzy -msgid ":ref:`Using servers `" +msgid ":ref:`doc_using_servers`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Різне" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +#, fuzzy +msgid ":ref:`doc_running_code_in_the_editor`" +msgstr "Працюємо у 32-бітовій збірці" + +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:140 +#, fuzzy +msgid ":ref:`doc_complying_with_licenses`" +msgstr "Компіляція нашого додатка" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "Компілювання" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Як створити дані" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" +msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Плаґіни (додатки)" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Створення додатків" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:162 +#, fuzzy +msgid ":ref:`doc_spatial_gizmo_plugins`" +msgstr "Створення додатків" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -2054,7 +2077,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Редактор" @@ -2353,11 +2376,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2367,14 +2392,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "Висновки" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3054,8 +3079,8 @@ msgstr "Групи" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3233,7 +3258,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4444,37 +4469,37 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 #, fuzzy msgid "Finishing up" msgstr "Завершальна обробка" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "Тло" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4484,18 +4509,18 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 #, fuzzy msgid "Sound effects" msgstr "Звукові ефекти" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4503,7 +4528,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4511,28 +4536,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4542,26 +4567,26 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 #, fuzzy msgid "Project files" msgstr "Файли проекту" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -4638,7 +4663,7 @@ msgstr "Ось повний скрипт для гравця із комента #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -5064,9 +5089,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7828,7 +7852,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8914,223 +8938,224 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "Відмінності" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Ліцензія" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "ОС (редактор)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows, macOS, X11 (Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "ОС (експорт)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**Настільні:** Windows, macOS, Linux" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**Мобільні:** Android, iOS, Windows Phone, Tizen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "Visual Studio або VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" -msgstr "" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +#, fuzzy +msgid "Notable advantages" +msgstr "Категорії" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "Редактор" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9138,65 +9163,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "Цегла" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9206,59 +9232,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9268,142 +9296,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "Дизайн" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9411,7 +9430,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9419,30 +9438,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9450,7 +9468,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9458,28 +9476,28 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "Дублювати анімацію" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9488,7 +9506,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9497,11 +9515,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9509,7 +9527,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11615,11 +11633,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11630,67 +11655,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11700,43 +11787,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11744,7 +11831,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11752,11 +11839,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12269,7 +12356,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14375,7 +14462,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "Приклад" @@ -15248,10 +15335,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15267,276 +15353,274 @@ msgid "Formatting conventions" msgstr "Створення просторових елементів" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 #, fuzzy msgid "Using spaces" msgstr "Редагування екземплярів" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," -msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" +msgstr "Інші канали спілкування" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 #, fuzzy msgid "Implicitly typed local variables" msgstr "Локальні змінні із неявною типізацією" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 #, fuzzy msgid "Other considerations" msgstr "Інші загальноприйняті правила" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18551,91 +18635,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25896,18 +25986,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "Анізотропія" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25915,11 +26021,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25929,11 +26035,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Глибина" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25942,34 +26048,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25977,33 +26083,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "Подробиці" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -26011,17 +26117,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -26030,17 +26136,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -26161,7 +26267,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26579,7 +26686,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26655,13 +26762,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26670,31 +26784,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Основними причинами є:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26702,64 +26816,64 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 #, fuzzy msgid "Adding lights" msgstr "Додавання освітлення" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "Відбиття" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26767,82 +26881,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "Якість" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27452,7 +27566,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27460,28 +27574,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27491,7 +27605,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27501,58 +27615,58 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 #, fuzzy msgid "Mid- and post-processing effects" msgstr "Змінні середовища" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27561,7 +27675,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27569,52 +27683,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27624,28 +27738,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27653,47 +27767,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27702,65 +27816,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "Німб" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27770,27 +27884,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27798,78 +27912,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "Коригування" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -29123,23 +29237,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -29147,90 +29261,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -29239,30 +29353,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -29270,120 +29384,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29391,13 +29505,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29405,44 +29519,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29450,14 +29564,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29466,37 +29580,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29504,7 +29618,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29513,7 +29627,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29521,7 +29635,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29529,12 +29643,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29542,30 +29656,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29573,30 +29687,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29604,14 +29718,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29619,86 +29733,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29706,62 +29820,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29770,7 +29884,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29778,44 +29892,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29825,32 +29939,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29860,7 +29974,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -37161,7 +37275,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -37172,99 +37286,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -37272,11 +37386,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -37287,26 +37401,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37315,7 +37429,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -38109,7 +38223,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "Приклади" @@ -43752,10 +43866,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "Інтернаціоналізація" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52457,7 +52567,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -63340,6 +63450,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -63350,52 +63464,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -65241,9 +65355,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -65272,7 +65386,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -65301,7 +65415,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -65325,9 +65439,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65737,7 +65851,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -66023,7 +66137,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -66184,17 +66298,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "**Arch**" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "**Debian** / **Ubuntu**" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "**Fedora**" @@ -66203,7 +66316,7 @@ msgid "**macOS**" msgstr "**macOS**" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "**Mageia**" @@ -66276,7 +66389,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -66305,12 +66418,11 @@ msgid "GCC or Clang" msgstr "GCC або Clang" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -66330,57 +66442,55 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" -msgstr "" +#, fuzzy +msgid "PulseAudio development libraries" +msgstr "Тестування версій, які перебувають у розробці" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#, fuzzy +msgid "**Arch Linux**" +msgstr "**Arch**" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "**FreeBSD**" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "**Gentoo**" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "OpenBSD" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "**openSUSE**" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -66388,7 +66498,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -66396,57 +66506,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "%1 біт" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "%1 біт" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 +#: ../../docs/development/compiling/compiling_for_x11.rst:138 msgid "" -"Note that cross compiling for the opposite bits (64/32) as your host " +"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:138 +#: ../../docs/development/compiling/compiling_for_x11.rst:141 msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -66458,6 +66577,10 @@ msgstr "Компілювання" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -67361,7 +67484,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -67369,18 +67491,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "Змінні середовища" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -67388,27 +67510,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "Увімкніть модуль Mono" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -67416,21 +67538,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -67441,12 +67563,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "Нотатки" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -67454,7 +67576,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -67463,28 +67585,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67494,7 +67616,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67504,20 +67626,20 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "Приклад (Windows)" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "Приклад (X11)" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 #, fuzzy msgid "Data directory" msgstr "Напрямок" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67526,7 +67648,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67534,14 +67656,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67550,57 +67672,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67611,7 +67733,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67621,55 +67743,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Створення простого додатка" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67678,65 +67800,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "Параметри командного рядка" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67867,7 +67989,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/vi.po b/weblate/vi.po index d28854f0b9..07e257500d 100644 --- a/weblate/vi.po +++ b/weblate/vi.po @@ -12,7 +12,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: Steve Dang \n" "Language-Team: Vietnamese `_!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Phần tài liệu chính của trang được tổ chức như sau:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "Tổng quan" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "Bắt đầu" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "Hướng dẫn" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "Nhà phát triển" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "Cộng đồng" @@ -1196,363 +1200,364 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 +msgid "New tutorials since version 3.1" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:19 +msgid ":ref:`doc_localization_using_gettext`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 #, fuzzy msgid "Step-by-step" msgstr "Từng bước" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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 "Hoạt ảnh" -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" +msgstr "Xem :ref:`doc_ways_to_contribute`." + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" +msgstr "Xem :ref:`doc_ways_to_contribute`." + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Tạo nội dung" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "Tạo nội dung" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -2021,7 +2026,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "Trình biên tập" @@ -2316,11 +2321,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2330,14 +2337,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3017,8 +3024,8 @@ msgstr "Nhóm" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3196,7 +3203,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4396,36 +4403,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4435,17 +4442,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4453,7 +4460,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4461,28 +4468,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4492,25 +4499,25 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4587,7 +4594,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -5010,9 +5017,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7774,7 +7780,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8859,223 +8865,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "Cấp phép" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9083,65 +9089,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9151,59 +9158,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9213,142 +9222,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9356,7 +9356,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9364,30 +9364,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9395,7 +9394,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9403,27 +9402,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9432,7 +9431,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9441,11 +9440,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9453,7 +9452,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11547,11 +11546,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11562,67 +11568,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11632,43 +11700,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11676,7 +11744,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11684,11 +11752,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12200,7 +12268,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14288,7 +14356,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15118,10 +15186,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15137,273 +15204,270 @@ msgid "Formatting conventions" msgstr "Tạo nội dung" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18372,91 +18436,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25680,18 +25750,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25699,11 +25785,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25713,11 +25799,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "Chiều sâu" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25726,34 +25812,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25761,33 +25847,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25795,17 +25881,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25814,17 +25900,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25944,7 +26030,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26361,7 +26448,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26436,13 +26523,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26451,31 +26545,31 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "Lý do chính là:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26483,63 +26577,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26547,82 +26641,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27220,7 +27314,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27228,28 +27322,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27259,7 +27353,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27269,57 +27363,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27328,7 +27422,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27336,52 +27430,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27391,28 +27485,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27420,47 +27514,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27469,65 +27563,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27537,27 +27631,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27565,78 +27659,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28877,23 +28971,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28901,90 +28995,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28993,30 +29087,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -29024,120 +29118,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29145,13 +29239,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29159,44 +29253,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29204,14 +29298,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29220,37 +29314,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29258,7 +29352,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29267,7 +29361,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29275,7 +29369,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29283,12 +29377,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29296,30 +29390,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29327,30 +29421,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29358,14 +29452,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29373,86 +29467,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29460,62 +29554,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29524,7 +29618,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29532,44 +29626,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29579,32 +29673,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29614,7 +29708,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36907,7 +37001,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36918,99 +37012,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -37018,11 +37112,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -37033,26 +37127,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37061,7 +37155,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37852,7 +37946,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43468,10 +43562,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52119,7 +52209,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62948,6 +63038,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62958,52 +63052,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64829,9 +64923,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64860,7 +64954,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64888,7 +64982,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64912,9 +65006,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65319,7 +65413,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65605,7 +65699,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65766,17 +65860,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65785,7 +65878,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65858,7 +65951,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65887,12 +65980,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65912,57 +66004,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65970,7 +66058,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65978,57 +66066,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -66039,6 +66136,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66942,7 +67043,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66950,18 +67050,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66969,27 +67069,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66997,21 +67097,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -67022,12 +67122,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -67035,7 +67135,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -67044,28 +67144,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67075,7 +67175,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67085,19 +67185,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67106,7 +67206,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67114,14 +67214,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67130,57 +67230,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67191,7 +67291,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67201,55 +67301,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "Tạo nội dung" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67258,65 +67358,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67447,7 +67547,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "" diff --git a/weblate/zh_CN.po b/weblate/zh_CN.po index 51134175c7..4dd2be15e7 100644 --- a/weblate/zh_CN.po +++ b/weblate/zh_CN.po @@ -69,7 +69,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-07-02 12:05+0000\n" "Last-Translator: wesley woo \n" "Language-Team: Chinese (Simplified) `_ 的 ``#godotengine-doc`` 频道中和我们交流!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "该网站的文档主要是按照以下章节形式来组织的:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "常规" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "入门" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "教程" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "开发" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "社区" @@ -1196,363 +1200,416 @@ msgstr "" "档中体现出来。" #: ../../docs/about/docs_changelog.rst:14 +#, fuzzy +msgid "New tutorials since version 3.1" +msgstr "自3.0版本以来的新教程" + +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" +msgstr "国际化" + +#: ../../docs/about/docs_changelog.rst:19 +#, fuzzy +msgid ":ref:`doc_localization_using_gettext`" +msgstr "本地化" + +#: ../../docs/about/docs_changelog.rst:22 msgid "New tutorials since version 3.0" msgstr "自3.0版本以来的新教程" -#: ../../docs/about/docs_changelog.rst:17 +#: ../../docs/about/docs_changelog.rst:25 msgid "Step-by-step" msgstr "逐步教程" -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +#: ../../docs/about/docs_changelog.rst:27 +#, fuzzy +msgid ":ref:`doc_signals`" msgstr ":ref:`信号 `" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:28 +#, fuzzy +msgid ":ref:`doc_exporting`" msgstr ":ref:`导出 `" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "项目工作流程" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +#, fuzzy +msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`安卓自定义构建 `" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "最佳实践:" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" +#: ../../docs/about/docs_changelog.rst:36 +#, fuzzy +msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`简介 `" -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" +#: ../../docs/about/docs_changelog.rst:37 +#, fuzzy +msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`什么是Godot类 `" -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" +#: ../../docs/about/docs_changelog.rst:38 +#, fuzzy +msgid ":ref:`doc_scene_organization`" msgstr ":ref:`场景结构 `" -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" +#: ../../docs/about/docs_changelog.rst:39 +#, fuzzy +msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`场景和脚本 `" -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr ":ref:`自动加载与内部节点 `" +#: ../../docs/about/docs_changelog.rst:40 +#, fuzzy +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "自动加载与内部节点" -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" +#: ../../docs/about/docs_changelog.rst:41 +#, fuzzy +msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`节点备选方案 `" -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" +#: ../../docs/about/docs_changelog.rst:42 +#, fuzzy +msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Godot接口 `" -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" +#: ../../docs/about/docs_changelog.rst:43 +#, fuzzy +msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Godot通知 `" -#: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +#: ../../docs/about/docs_changelog.rst:44 +#, fuzzy +msgid ":ref:`doc_data_preferences`" msgstr ":ref:`数据首选项 `" -#: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +#: ../../docs/about/docs_changelog.rst:45 +#, fuzzy +msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`逻辑首选项 `" -#: ../../docs/about/docs_changelog.rst:40 +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +#, fuzzy +msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`GDscript类型 `" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "二维" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +#, fuzzy +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`2D灯光与阴影 `" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +#, fuzzy +msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`2D网格 `" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "三维" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +#, fuzzy +msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" -msgstr "" -":ref:`使用复合网格制作数千条鱼的动画 `" +#: ../../docs/about/docs_changelog.rst:62 +#, fuzzy +msgid ":ref:`doc_animating_thousands_of_fish`" +msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +#, fuzzy +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr ":ref:`使用粒子系统控制数千条鱼 `" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "物理学" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +#, fuzzy +msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`布娃娃系统 `" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +#, fuzzy +msgid ":ref:`doc_soft_body`" msgstr ":ref:`软体 `" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" +#: ../../docs/about/docs_changelog.rst:74 +#, fuzzy +msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`2D骨骼 `" -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" +#: ../../docs/about/docs_changelog.rst:75 +#, fuzzy +msgid ":ref:`doc_animation_tree`" msgstr ":ref:`动画树 `" -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:80 +#, fuzzy +msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Godot接口 `" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "视区" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +#, fuzzy +msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`使用视区作为纹理 `" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +#, fuzzy +msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`自定义后期处理 `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "着色器" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" +#: ../../docs/about/docs_changelog.rst:91 +#, fuzzy +msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`着色器简介:2D和3D水(7节视频教程) " "`" -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" +#: ../../docs/about/docs_changelog.rst:92 +#, fuzzy +msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr ":ref:`迁移到Godot的着色语言 `" -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr ":ref:`高级后期处理 `" +#: ../../docs/about/docs_changelog.rst:93 +#, fuzzy +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "高级后处理" -#: ../../docs/about/docs_changelog.rst:91 +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "您的第一个光色生成器系列:" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" +#: ../../docs/about/docs_changelog.rst:96 +#, fuzzy +msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`着色器是什么? `" -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" +#: ../../docs/about/docs_changelog.rst:97 +#, fuzzy +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`你的第一个画布项着色器 `" -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" +#: ../../docs/about/docs_changelog.rst:98 +#, fuzzy +msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`你的第一个空间着色器 `" -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" +#: ../../docs/about/docs_changelog.rst:99 +#, fuzzy +msgid ":ref:`doc_your_second_spatial_shader`" msgstr ":ref:`你的第一个空间着色器:第2部分 `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:106 msgid "Shading Reference:" msgstr "着色参考:" -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" +#: ../../docs/about/docs_changelog.rst:102 +#, fuzzy +msgid ":ref:`doc_shaders`" msgstr ":ref:`着色器 `" -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" +#: ../../docs/about/docs_changelog.rst:103 +#, fuzzy +msgid ":ref:`doc_shading_language`" msgstr ":ref:`着色器语言 `" -#: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +#: ../../docs/about/docs_changelog.rst:104 +#, fuzzy +msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`空间着色器 `" -#: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +#: ../../docs/about/docs_changelog.rst:105 +#, fuzzy +msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`画布项着色器 `" -#: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +#: ../../docs/about/docs_changelog.rst:106 +#, fuzzy +msgid ":ref:`doc_particle_shader`" msgstr ":ref:`粒子着色器 `" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "虚拟现实" -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:111 +#, fuzzy +msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`虚拟现实入门教程 `" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "特定平台" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +#, fuzzy +msgid ":ref:`doc_customizing_html5_shell`" msgstr ":ref:`自定义Web导出HTML页面 `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "多线程" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +#, fuzzy +msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`线程安全API `" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "优化" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +#, fuzzy +msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`使用多重网格 `" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +#, fuzzy +msgid ":ref:`doc_using_servers`" msgstr ":ref:`使用服务器 `" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "杂项" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +#, fuzzy +msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`修复抖动和时断时续 `" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +#, fuzzy +msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`在编辑器中运行代码 `" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +#, fuzzy +msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`手动更改场景 `" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +#, fuzzy +msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`GLES2和GLES3之间的差异 `" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "合法的" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +#, fuzzy +msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`遵守许可证 `" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "开始编译" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +#, fuzzy +msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`根据大小优化构建 `" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" -msgstr ":ref:`使用脚本加密密钥编译 `" +#: ../../docs/about/docs_changelog.rst:146 +#, fuzzy +msgid ":ref:`doc_compiling_with_script_encryption_key`" +msgstr "使用脚本加密密钥编译" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "引擎开发" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" -msgstr ":ref:`绑定到外部库 `" +#: ../../docs/about/docs_changelog.rst:151 +#, fuzzy +msgid ":ref:`doc_binding_to_external_libraries`" +msgstr "绑定到外部库" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "创造内容" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +#, fuzzy +msgid ":ref:`doc_making_trees`" msgstr ":ref:`制作树 `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "插件" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" msgstr ":ref:`制作主屏幕插件 `" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" +#: ../../docs/about/docs_changelog.rst:162 +#, fuzzy +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`空间变换轴插件 `" -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" msgstr ":ref:`创建安卓插件 `" #: ../../docs/getting_started/step_by_step/index.rst:2 @@ -2068,7 +2125,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "编辑器" @@ -2420,15 +2477,18 @@ msgstr "" "存过的场景,更改此场景会影响所有实例。" #: ../../docs/getting_started/step_by_step/instancing.rst:107 +#, fuzzy msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" "您也可以调整单个实例。把弹力(Bounce)属性调回 ``0`` 然后回到 ``Main`` 场景" "中,选择其中一个小球,把它的 ``Bounce`` 设为 ``1`` ,然后运行。" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2441,14 +2501,14 @@ msgstr "" "个实例化场景属性,覆盖了它原有的值。即便再次修改原场景的属性,它的值也会保持" "不变。按下还原按钮将会把属性值还原为原场景设定值。" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "总结" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -3260,11 +3320,12 @@ msgid "Groups" msgstr "分组" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:90 +#, fuzzy msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" "Godot中的组的工作方式类似于您可能在其他软件中遇到的标记。一个节点可以根据需要" "添加到任意多个组。这是组织大型场景的一个有用特性。有两种方法可以向组添加节" @@ -3486,7 +3547,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "只有GDScript为每一个独立的脚本创建全局变量。" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4962,14 +5023,14 @@ msgstr "" "首先向``Mob.gd``添加一个新函数。``queue_free()``将在当前帧的末尾删除当前节" "点。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 msgid "" "Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` " "function, at the end." msgstr "" "然后在``Main.gd``中,``_on_MobTimer_timeout()``函数中的末尾,添加新的行。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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 " @@ -4978,11 +5039,11 @@ msgstr "" "这一行告诉新Mob节点(由``mob``变量引用)通过运行``_on_start_game()``函数来响应" "``HUD``节点发出的任何``开始_游戏``信号。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "完成了" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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. " @@ -4991,12 +5052,12 @@ msgstr "" "现在我们已经完成了游戏的所有功能。下面是一些额外的步骤,添加更多的\"juice\"来" "提升游戏体验。您可以用您自己的想法来扩展游戏玩法。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "背景" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -5010,17 +5071,17 @@ msgstr "" "样它就会被绘制到其它节点的后面。 ``ColorRect`` 只有一个属性: ``Color`` 。选择" "一个您喜欢的颜色并拖拽 ``ColorRect`` 的大小使它覆盖整个屏幕。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 msgid "" "You could also add a background image, if you have one, by using a " "``Sprite`` node." msgstr "如果您有背景图片,您也可以通过使用 ``Sprite`` 节点来添加背景图片。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "声音效果" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -5031,7 +5092,7 @@ msgstr "" "音文件:\"House In a Forest Loop.ogg\"用于背景音乐, \"gameover.wav\"将在游戏" "角色输掉游戏时播放。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -5043,7 +5104,7 @@ msgstr "" "``DeathSound`` 。在每个节点选项上,点击 ``Stream``属性, 选择\"Load\",然后选" "择相应的音频文件。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 msgid "" "To play the music, add ``$Music.play()`` in the ``new_game()`` function and " "``$Music.stop()`` in the ``game_over()`` function." @@ -5051,15 +5112,15 @@ msgstr "" "要播放音乐,在 ``new_game()`` 函数中添加 ``$Music.play()``,在 " "``game_over()`` 函数中添加 ``$Music.stop()`` 。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "最后, 在 ``game_over()`` 函数中添加 ``$DeathSound.play()`` 。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "键盘快捷键" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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 " @@ -5069,7 +5130,7 @@ msgstr "" "便。\n" "一种方法是使用`Button`节点的“快捷方式”属性。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -5085,25 +5146,25 @@ msgstr "" "最后,在_Action_属性中输入名称“ui_select”。\n" "这是与空格键关联的默认输入事件。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "现在,当开始按钮出现时,您可以单击它或按空格键来启动游戏。" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 msgid "Project files" msgstr "项目文件" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "您可以在这里找到这个项目的完整版本:" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "https://github.com/kidscancode/Godot3_dodge/releases" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "https://github.com/godotengine/godot-demo-projects" @@ -5197,7 +5258,7 @@ msgstr "这是游戏角色的完整脚本,注释指出了我们做了哪些改 #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "导出模板" @@ -5712,11 +5773,11 @@ msgstr "" "自由的。在很大程度上,它们是由贡献者从头开始开发的。" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 +#, fuzzy msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" "任何人都可以插入专用的工具来满足他们项目的需求——他们只是不会随同引擎一起发" "布。这可能包括英伟达PhysX,谷歌AdMob,或FBX型号进口商。这些都可以作为第三方插" @@ -9133,7 +9194,7 @@ msgstr ":download:`robisplash_assets.zip `。" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -10480,65 +10541,72 @@ msgstr "" "该指南提供了从 Unity 用户的角度所作的概览,并旨在帮助您将现有的Unity体验迁移至" "Godot的世界里。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "不同" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "Unity" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "Godot" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "许可证" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "专有,封闭,有收入上限和使用限制的免费许可证" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "MIT许可证,免费,完全开源,没有任何限制" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "OS (编辑器)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "Windows, macOS, Linux (非正式的,不被支持的)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "Windows,macOS,X11(Linux, \\*BSD)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "OS (导出)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "**桌面端:** Windows,macOS,Linux" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "**移动端:** Android,iOS,Windows Phone,Tizen" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "**网页:** WebAssembly 或 asm.js" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "**游戏主机:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" @@ -10546,171 +10614,171 @@ msgstr "" "**虚拟现实端:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear " "VR, HoloLens" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "**电视端:** Android TV, Samsung SMART TV, tvOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "**桌面端:** Windows,macOS,X11" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "**移动端:** Android,iOS" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "**网页:** WebAssembly" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "**游戏主机:** 见 :ref:`doc_consoles`" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "**虚拟现实端:** Oculus Rift, SteamVR" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "场景系统" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "组件/场景 (游戏物体 > 组件)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "预制体" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" ":ref:`场景树和节点`,允许场景被嵌套或继承其他场景" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "第三方工具" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "Visual Studio 或 VS Code" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr ":ref:`可使用外部编辑器 `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr ":ref:`用于导出安卓平台的 Android SDK `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" -msgstr "杀手级的功能" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +#, fuzzy +msgid "Notable advantages" +msgstr "**优势:**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "庞大的社区" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "大型的素材商店" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "场景系统" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr ":ref:`动画管线 `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr ":ref:`易于书写的着色器 `" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "在设备上排错" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "编辑器" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 +#, fuzzy msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" "Godot引擎提供了一个功能丰富的编辑器,可让您构建您的游戏。以下的图片展示了带有" "表示常用功能的色彩块的编辑器。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "请注意,Godot编辑器允许您任意将各个面板停靠在场景编辑器的一侧。" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 +#, fuzzy msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" "虽然这两个编辑器看上去相同,但是在外表之下有着许多的不同。两者都允许您使用文" "件系统来组织项目,但是Godot的方法更简单,只需要一个非常小的文本格式文件,而不" "需要元数据。所有这些都使得 Godot 对VCS系统(如 Git , Subversion 或 " "Mercurial )更友好。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 +#, fuzzy msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" "虽然Godot的场景面板和Unity的Hierarchy面板很相似,但是因为每个节点都有特殊的功" "能,Godot的用法更具有视觉描述性。换句话说,看一眼就能理解一个特定场景的功能。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 +#, fuzzy msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" "Godot 的 Inspector 面板更为简单,且它的设计只为显示属性服务。得益于此,对象可" "以向用户输出大量有用的参数,而无需把功能隐藏在语言 API 中。另外,Godot允许可" "视化地为任何这些属性制作动画,所以可以在不使用代码的情况下实时改变颜色,纹" "理,枚举甚至是实时链接资源。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 +#, fuzzy msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" "最后,屏幕上方的工具条都有着类似的功能,那就是控制项目的播放,但是 Godot 的项" "目是在独立窗口中运行的,它们不会在编辑器中执行(但是树和对象仍然可以在调试窗口" "中查看)。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 +#, fuzzy msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" "这种方法的缺点就是运行中的游戏不能从其他角度观察(尽管未来可能会得到支持,并在" "运行中的游戏里显示碰撞体 gizmo也有可能),但是作为交换有几个优点:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." @@ -10718,7 +10786,7 @@ msgstr "" "运行项目与关闭它会非常快( Unity 必须保存,再运行项目,关闭项目,然后重载之前" "的状态)。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -10728,75 +10796,80 @@ msgstr "" "实时编辑更加有用,因为对编辑器做的更改会立即在游戏中生效,并且在游戏关闭时不" "会丢失(也不必同步)。这提供了出色的工作流程,比如在您运行的时候创建关卡。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "编辑器更加稳定,因为游戏运行在一个单独的进程中。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 +#, fuzzy msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" "最后,顶部的工具条包含了一个远程排错的菜单。这些选项让在设备上的部署变得简单" "(连接到手机,平板或者是支持HTML5的浏览器),并可以在游戏导出之后排错/实时编" "辑。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "场景系统" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 +#, fuzzy msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" "这是Unity和Godot间最重要的不同点,实际上也是大多数 Godot 用户最喜爱的特性。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 +#, fuzzy msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" "Unity的场景系统包含了一个将所有需要的素材嵌入到其中的场景,并通过设置组件和脚" "本将它们链接在一起。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 +#, fuzzy msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" "Godot 的场景系统与其不同:它实际上包含一个由节点组成的树。每一个节点都有它的用" "途:精灵,网格,灯光,等。基本上,这与Unity场景系统类似。但是,每个节点可以有" "多个子节点,这使得每个节点都成为主场景的子场景。这意味着您可以用不同的场景组" "成一个完整的场景,存储在不同的文件中。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "例如,一个平台游戏的关卡。您可以用多个元素来组合它:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "砖块" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "金币" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "游戏角色" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "敌人" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -10810,61 +10883,71 @@ msgstr "" "加到每个元素以将它们链接起来并添加关卡中的逻辑:例如,您应该会为场景的所有元素" "各添加一个BoxCollider2D,以便它们可以发生碰撞。这个原则在 Godot中是不同的。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 +#, fuzzy msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." msgstr "" "在Godot中,您要把整个场景分成3个独立的小场景,然后您将在主场景中实例化它们。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#, fuzzy +msgid "**A scene for the Player alone.**" msgstr "**首先,一个只有游戏角色的场景。**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#: ../../docs/getting_started/editor/unity_to_godot.rst:115 +#, fuzzy msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" "把游戏角色视为一个在其他关卡中可重用的元素。它通常由一个节点组成:一个精灵动画" "节点,它包含可生成各种动画的精灵纹理(例如,步行动画)" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:117 +#, fuzzy +msgid "**A scene for the Enemy.**" msgstr "**其次,一个敌人场景。**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 +#, fuzzy msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" "敌人也是其他关卡的可重用元素。它与Player节点几乎相同 - 唯一的区别是 " "AnimatedSprite 所使用的脚本(主要是管理AI的)和精灵纹理。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +#, fuzzy +msgid "**A Level scene.**" msgstr "**最后,关卡场景。**" -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 +#, fuzzy msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" "它由砖块(用于平台),金币(供游戏角色抓取)和一定数量的前一个敌人场景的实例组" "成。这些将是不同的,独立的敌人,其行为和外观将与“敌人”场景中定义的相同。然后" "将每个实例视为关卡场景树中的节点。当然,您可以为每个敌人节点设置不同的属性(例" "如改变它的颜色)。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 +#, fuzzy msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " @@ -10875,7 +10958,7 @@ msgstr "" "者“2D节点”(所有2D相关节点的根类型),“空间”(所有3D相关节点的根类型)或“控制”(所" "有GUI相关节点的根类型)。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -10889,167 +10972,166 @@ msgstr "" "有碰撞属性的新特定节点的 *子节点* 。Godot具有各种碰撞类型节点,具体取决于使用" "情况(请参阅 :ref:`Physics introduction `)。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#, fuzzy msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" "问题:这个系统的优点是什么?这个系统不会增加场景树的深度吗?此外,Unity允许通" "过将 GameObjects 放置在空的 GameObjects 中来组织他们。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 +#, fuzzy msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" "首先,这个系统更接近于众所周知的面向对象的标准: Godot 提供了许多不清楚“游戏对" "象”的节点,但它们为子节点提供了自己本身的功能:这就是继承。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 +#, fuzzy msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" "其次,它允许抽出场景的一个子树使其成为它自己的一个场景,这回答了第二个和第三" "个问题:即使场景树变得太深,它也可以拆分成更小的子树。这也提供了有着可重用性的" "更好的解决方案,因为您可以将任何子树作为任何节点的子节点。除了可视化组织外," "将多个节点放入Unity中的空 GameObject 中并不能提供相同的可能性。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "这些是您需要记住的最重要的概念:“节点”,“父节点”和“子节点”。" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "项目组织" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -"我们之前观察到,没有完美的设置项目体系结构的解决方案。 任何解决方案都适用于 " -"Unity 和 Godot ,所以这一点不太重要。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 +#, fuzzy msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" "但是,我们经常可以注意到Unity项目的一个通用体系结构,它包含一个在根目录中的" "Assets文件夹,其中包含各种文件夹,每种资源类型各一个:音频,图形,模型,材质," "脚本,场景等。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 +#, fuzzy msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" "如前所述,Godot场景系统允许将场景切割成更小的场景。 由于每个场景和子场景实际" "上都是项目中的一个场景文件,因此我们建议用不同的方法组织您的项目。 这个wiki为" "此提供了一个页面: :ref:`doc_project_organization` 。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "我的预制体在哪里?" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 +#, fuzzy msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" "Unity 提供的预制体的概念是场景的“模板”元素。 它是可重复使用的,并且场景中存在" "的预制体的每个实例都有其自己的存在,但它们都具有与预制体所定义的相同的属性。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 +#, fuzzy msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" "Godot不提供这样的预制体,但它的功能由它的场景系统所弥补:正如我们所看到的,场" "景系统由一棵树组成。 Godot 允许您将场景的一个子树保存为自己的场景,并保存在自" "己的文件中。这个新场景可以随意多次实例化。您对这个新的独立场景所做的任何更改" "都将应用于其实例。但是,对实例所做的任何更改都不会对“模板”场景产生任何影响。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 +#, fuzzy msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" "确切地说,您可以在 Inspector 面板中修改实例的参数。但是,组成此实例的节点已锁" "定,如果有必要请右键单击“场景”树中的实例并在菜单中选择“可编辑的子项”,即可以" "解锁它们。 您不需要这样做来为此节点添加新的子节点,但请记住,这些新子节点将属" "于该实例,而不是“模板”场景。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "术语对应" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "游戏对象 -> 节点" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "添加组件 -> 继承" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" -msgstr "预制 -> 外部化分支" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" +msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "脚本:GDScript ,C# 和 Visual Script" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "设计" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#, fuzzy msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" "如您所知,Unity 支持 C#。C# 从与 Visual Studio 集成中受益和其他的功能中受益," "例如静态类型。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 +#, fuzzy msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" "Godot提供了自己的脚本语言: :ref:`GDScript ` ,并且支持: :ref:" "`Visual Script ` 和 :ref:`C# " @@ -11058,7 +11140,7 @@ msgstr "" "GDScript 非常依赖于Godot API,但它的确很容易学习:一个有经验的程序员一个晚上就" "能学会,一个真正的初学者也只需一个星期。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -11069,7 +11151,7 @@ msgstr "" "加一个行为:例如,您可以添加一个脚本,以便它对游戏角色的控制作出反应,而另一个" "脚本控制其特定的游戏逻辑。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -11080,33 +11162,33 @@ msgstr "" "将其包含在节点中。如果您需要将更多脚本附加到一个节点上,那么您可以考虑这两种" "解决方案,具体取决于您的场景以及您想实现的目标:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" "在目标节点和其当前父节点之间添加一个新节点,然后向该新节点添加一个脚本。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "或者,您可以将您的目标节点分成多个子节点并为其中的每一个添加一个脚本。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#, fuzzy msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" "正如您所看到的,把场景树变成一团糟可能很容易。 这就是拥有一个真正的反射的重要" "性,并且考虑把一个复杂的场景分成多个小的分支。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "连接:组和信号" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 #, fuzzy msgid "" "You can control nodes by accessing them via script and calling built-in or " @@ -11118,7 +11200,7 @@ msgstr "" "的)。但还有:您也可以将它们放在一个组中,并调用一个在该组中包含的所有节点上的" "函数!解释如下: :ref:`this page ` 。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 #, fuzzy msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " @@ -11130,16 +11212,16 @@ msgstr "" "候来调用特定的函数。请注意,您可以定义自己的信号并随时发送。这个功能记录在`这" "里 <../scripting/gdscript/gdscript_basics.html#signals>`_ 。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 #, fuzzy msgid "Script serialization" msgstr "脚本序列化" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "Unity可以通过两种方式处理脚本序列化:" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." @@ -11147,13 +11229,13 @@ msgstr "" "隐式: 如果类型是可序列化类型 ( ``字典`` 是不可序列化的), 则类中的所有公共字段" "都将自动序列化。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "显式: 可以使用 ``[SerializeField]`` 属性序列化非公共字段。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 #, fuzzy msgid "" "Godot also has a built-in script serialization system, but it works only " @@ -11167,7 +11249,7 @@ msgstr "" "` ,包括类 _ array 和类 _ dicary)。此工作流程" "在 `这里 <../scripting/gdscript/gdscript_basics.html#exports>`_ 进行了说明。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -11180,11 +11262,11 @@ msgstr "" "ref:`class_Resource` 的脚本将允许您创建可自定义可序列化对象。有关资源的更多信" "息, 请参考 :ref:`这里 ` 。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "在 Godot 中使用 C++" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 #, fuzzy msgid "" "Godot allows you to develop your project directly in C++ by using its API, " @@ -11196,7 +11278,7 @@ msgstr "" "Unity 。 例如,您可以将 Godot 引擎的编辑器视为使用 Godot API 用C++编写的“游" "戏”。" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -13526,11 +13608,18 @@ msgstr "" "在编辑器中运行脚本(只要它们不执行游戏代码或手动避免那样做)。为此,可以用 " "``tool`` 关键字并将它放在文件的顶部:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "内存管理" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -13546,7 +13635,7 @@ msgstr "" "必须调用 instance.free()。 为了避免无法释放的引用循环,一个 ``weakref`` 函数" "被用来来创建弱引用。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 msgid "" "Alternatively, when not using references, the " "``is_instance_valid(instance)`` can be used to check if an object has been " @@ -13555,74 +13644,132 @@ msgstr "" "或者,当不使用引用时,可以使用 ``is_instance_valid(instance)`` 来检查对象是否" "已被释放。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 +#, fuzzy msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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 "" "信号是一种从对象发送通知消息的方式,其他对象可以以通用方式侦听该对象。使用" "``signal``关键字为类创建自定义信号。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1490 +#, fuzzy +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 "" "这些信号的连接方式可能与连接节点的内置信号相同, 例如: :ref:`class_Button` " "或 :ref:`class_RigidBody`。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1493 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" -"下面是一个示例, 它在一个脚本中创建自定义信号, 并使用 :ref:`Object.connect() " -"` 方法将自定义信号连接到单独脚本中的方法:" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1514 +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:1556 +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:1559 +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:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +#, fuzzy +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 "" "gdscript 可以将参数绑定到信号和方法之间的连接。当发出信号时, 调用连接的方法, " "绑定参数被赋予该方法。这些绑定参数特定于连接, 而不是信号或方法, 这意味着每个" "连接都有唯一的绑定。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1594 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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 "" -"下面的示例在按钮的 ``pressed`` 信号和方法之间创建连接,将按钮实例绑定到该连" -"接。\n" -"处理程序使用绑定参数打印按下了哪个按钮实例。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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 "" -"信号由 :ref:`Object.emit_signal() ` 方法生" -"成,该方法广播信号和参数。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 msgid "" -"Extending a previous example to use all the features of GDScript signals:" -msgstr "扩展前面的示例,使用GDScript信号的所有特性:" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "有yield的协同程序" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -13636,21 +13783,21 @@ msgstr "" "结状态。在结果对象上调用 ``resume`` 将会继续执行,并返回函数返回的任何内容。" "一旦恢复,状态对象就变得无效。下面是一个示例:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "将打印:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "还可以在 yield() 和 resume() 之间传递值,例如:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "协程&信号" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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 " @@ -13659,22 +13806,22 @@ msgstr "" "使用 ``yield`` 的真正强度是在与信号结合时。 ``yield`` 可以接受两个参数,一个" "物体和一个信号。当接收到信号时,执行将重新开始。下面是一些示例:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 msgid "" "Coroutines themselves use the ``completed`` signal when they transition into " "an invalid state, for example:" msgstr "协同程序本身在转换到无效状态时使用 ``completed`` 信号,例如:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "``my_func`` 将只在按钮被按下后继续执行。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "Onready关键词" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -13684,7 +13831,7 @@ msgstr "" "当使用节点时,通常希望在变量中保留对场景部分的引用。由于场景只允许在进入活动" "场景树时配置,所以子节点只能在 Node._ready() 准备后获得。" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -13695,11 +13842,11 @@ msgstr "" "``onready`` 关键字,它将成员变量的初始化推迟到调用 until _ready 后。它可以用" "一行代码替换上面的代码:" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "Assert关键字" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -14273,7 +14420,7 @@ msgid "**NEVER**:" msgstr "**决不要**:" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "命名约定" @@ -16731,7 +16878,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "示例" @@ -17727,11 +17874,11 @@ msgid "Language specification" msgstr "语言规范" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 +#, fuzzy msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" "目前,Godot在其引擎和示例源代码中使用C#6.0版。 因此,在我们迁移到更新版本之" "前,必须注意避免混合仅在C#7.0或更高版本中可用的语言功能,例如模式匹配或get / " @@ -17751,34 +17898,41 @@ msgid "Formatting conventions" msgstr "命名约定" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +#, fuzzy +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" "如果您创建一个新文件,请确保它使用换行符( *LF* )来断行,而不是 *CRLF* 或 " "*CR* 。" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 +#, fuzzy msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" "使用没有字节顺序标记的UTF-8编码(BOM )。" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 +#, fuzzy msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "使用4个空格而不是标签进行缩进(称为 '软标签' )。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "换行符和空白行" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 +#, fuzzy msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" @@ -17787,40 +17941,41 @@ msgstr "" "Indentation_style#Allman_style>`_ ,它建议将与控制语句关联的大括号放在下一" "行,缩进到同一水平:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "但是,您可以选择省略括号内的换行符:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "对于简单的属性访问者。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "对于简单对象,数组或集合初始值设定项。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "对于抽象的自动属性,索引器或事件声明。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "插入一个空行:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#, fuzzy +msgid "After a list of ``using`` statements." msgstr "之后 *using* 语句列表。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 msgid "Between method, properties, and inner type declarations." msgstr "在方法,属性和内部类型声明之间。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 #, fuzzy msgid "At the end of each file." msgstr "这是该类的 cpp 文件。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " @@ -17829,220 +17984,231 @@ msgstr "" "字段和常量声明可以根据相关性组合在一起。 在这种情况下,请考虑在组之间插入一个" "空行以便于阅读。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "避免插入空行:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "在开括号 ``{`` 之后。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "在结束括号 ``}`` 之前。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#, fuzzy +msgid "After a comment block or a single-line comment." msgstr "发表评论后,或单行评论。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "毗邻另一条空白行。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "使用空格" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "插入空格:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "围绕二元和三元运算符。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#, fuzzy msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" "在左括号和 *if*, *for*, *foreach*, *catch*, *while*, *lock* 或 *using* 关键字" "之间。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "在单行访问器块之前和之内。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "在单行访问器块中的访问器之间。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "逗号后。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#, fuzzy +msgid "After a semicolon in a ``for`` statement." msgstr "在 *for* 语句中使用分号后。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#, fuzzy +msgid "After a colon in a single line ``case`` statement." msgstr "在单行 *case* 语句中冒号后。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "在类型声明中的冒号周围。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "围绕一个lambda箭头。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 +#, fuzzy msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "在单行注释符号('//')之后,如果在行结束时使用它。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "不要使用空间:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "在类型转换括号后。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "在单行初始化程序括号内。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "根据上面提到的一些约定,以下示例显示了空格的正确使用:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 +#, fuzzy msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" "对所有名称空间,类型名称和成员级别标识符(即方法,属性,常量,事件)使用 " "*PascalCase* ,私有字段除外:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 +#, fuzzy msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" msgstr "" "对所有其他标识符(即局部变量,方法参数)使用 *camelCase* ,并使用下划线('_')作" "为私有字段的前缀(但不适用于方法或属性,如上所述):" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +#, fuzzy msgid "" "There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" "首字母缩略词有一个例外,它由两个字母组成,例如 *'UI'* ,当使用Pascal案例时," "应使用大写字母书写,否则使用小写字母。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 +#, fuzzy msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "请注意,*'id'* **不是** 首字母缩略词,因此应将其视为普通标识符:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 +#, fuzzy msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" "例如,通常不鼓励使用类型名称作为标识符的前缀,例如*'string strText'*或" "*'float fPower'*。 但是,有一个关于接口的例外,在这种情况下,它们**应该使用大" "写 *'I'* 作为前缀命名,如 *'IInventoryHolder'* 或 *'IDamageable'*。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "最后,考虑选择描述性名称,如果它影响可读性,不要试图将它们缩短太多。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#, fuzzy msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "例如,如果您想编写一个代码来寻找附近的敌人并用武器击中,那就更喜欢了" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +#, fuzzy +msgid "Rather than:" msgstr "而不是," -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "隐式输入的局部变量" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 +#, fuzzy msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" "考虑使用隐式输入(*'var'*)来声明局部变量,但只有在类型明显的情况下** **才能从" "赋值的右侧执行:" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "其他考虑" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "使用显式访问修饰符。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "使用属性而不是非私有字段。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 +#, fuzzy msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" "按此顺序使用修饰符:*'public / protected / private / internal virtual / " "override / abstract / new static readonly'*。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#, fuzzy msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "在没有必要的情况下,避免使用完全限定名称或 *'this.'* 前缀。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#, fuzzy +msgid "Remove unused ``using`` statements and unnecessary parentheses." msgstr "删除未使用的 *'using'* 语句和不必要的括号。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#, fuzzy +msgid "Consider omitting the default initial value for a type." msgstr "考虑省略类型的默认初始值。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "考虑使用空条件运算符或类型初始化器来使代码更紧凑。" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -21415,10 +21581,16 @@ msgstr "" "下步骤中看到 **exported_xcode_project_name** 时,请将其替换为您使用的名称。" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "导出完成后,输出文件夹应如下所示:" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." @@ -21426,11 +21598,11 @@ msgstr "" "打开 **exported_xcode_project_name.xcodeproj** 可让您像任何其他iOS应用程序一" "样构建和部署。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "积极的发展考虑" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." @@ -21438,40 +21610,40 @@ msgstr "" "上面的方法创建了一个可以为发布而构建的导出项目,但每次在Godot中进行更改时都必" "须重新导出。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" "在开发过程中,您可以通过将Godot项目文件直接链接到您的应用程序来加快此过程。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "在以下示例中:" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "**exported_xcode_project_name** 是导出的iOS应用程序的名称(如上所示)。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "**godot_project_to_export** 是Godot项目的名称。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "将Godot项目文件夹链接到Xcode的步骤" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "从导出的iOS项目开始(按照上述步骤)。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "在Finder中,将Godot项目文件夹拖到Xcode文件浏览器中。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " @@ -21480,15 +21652,15 @@ msgstr "" "3.在对话框中,确保选中 **创建文件夹引用** 。 这意味着您将能够继续在其当前位置" "编辑您的Godot项目。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "请参阅Xcode文件浏览器中的 **godot_project_to_export** 文件夹。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "从Xcode项目中删除 **exported_xcode_project_name.pck**。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " @@ -21498,7 +21670,7 @@ msgstr "" "**godot_path的字符串属性** (这是真正的密钥名称),其值为 " "**godot_project_to_export** (这是项目的名称)" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." @@ -21506,12 +21678,12 @@ msgstr "" "就这样! 您现在可以在Godot编辑器中编辑项目,并在想要在设备上运行时在Xcode中构" "建它。" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "适用于iOS的服务" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -30180,6 +30352,23 @@ msgid "Clearcoat" msgstr "清漆" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +#, fuzzy +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "此选项仅适用于基于unix的平台。" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " @@ -30188,12 +30377,12 @@ msgstr "" "* Clearcoat *参数用于为材质添加透明涂层的二次通过。 这在汽车油漆和玩具中很常" "见。 在实践中,它是在现有材质之上添加的较小的镜面斑点。" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "各向异性" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -30203,11 +30392,11 @@ msgstr "" "这会更改镜面斑点的形状并将其与切线空间对齐。 各向异性通常与头发一起使用,或使" "诸如拉丝铝之类的材质更加逼真。 与流程图结合使用时效果特别好。" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "环境光遮蔽" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -30220,11 +30409,11 @@ msgstr "" "况下它不会影响直接光)。 虽然可以使用屏幕空间环境遮挡(SSAO)来生成环境遮挡,但" "没有什么能比良好烘焙的AO贴图的质量更好。 建议尽可能烘焙环境遮挡。" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "深度" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -30236,11 +30425,11 @@ msgstr "" "不是真正增加的几何,而是一种深度的幻觉。 它可能不适用于复杂的对象,但它会为纹" "理产生逼真的深度效果。 为获得最佳效果,* Depth *应与法线贴图一起使用。" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "次表面散射" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " @@ -30249,11 +30438,11 @@ msgstr "" "此效果模拟穿透物体表面,散射然后散出的光。 创造逼真的皮肤,大理石,有色液体等" "是有用的。" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "传输" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " @@ -30262,12 +30451,12 @@ msgstr "" "这可以控制从被点亮的一侧(可见光到光线)传输到暗侧(与灯光相反)的光线。 这适用于" "植物叶子,草,人耳等薄物体。" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "折射" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -30277,11 +30466,11 @@ msgstr "" "当启用折射时,它会取代alpha混合,而Godot会尝试从正在渲染的对象后面获取信息。 " "这允许以类似于现实生活中的折射的方式扭曲透明度。" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "详情" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " @@ -30290,11 +30479,11 @@ msgstr "" "Godot允许使用二级反照率和法线贴图生成细节纹理,可以通过多种方式进行混合。 通" "过将其与二级UV或三平面模式相结合,可以实现许多有趣的纹理。" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "UV1和UV2" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " @@ -30303,11 +30492,11 @@ msgstr "" "Godot每种材质支持两个UV通道。 二次紫外线通常可用于环境遮挡或发射(烘焙光)。 UV" "可以缩放和偏移,这在使用重复纹理时很有用。" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "Triplanar映射" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -30318,7 +30507,7 @@ msgstr "" "理”。 纹理在X,Y和Z中采样,并由法线混合。 可以在世界空间或对象空间中执行三平" "面映射。" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." @@ -30326,11 +30515,11 @@ msgstr "" "在下图中,您可以看到所有基元如何与世界三平面共享相同的材质,因此砖纹理在它们" "之间继续平滑。" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "接近和距离褪色" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -30342,7 +30531,7 @@ msgstr "" "颗粒或大量水的效果是有用的,并且平滑地混合到海岸。 距离淡化对于仅在给定距离之" "后存在的光轴或指示器是有用的。" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." @@ -30350,11 +30539,11 @@ msgstr "" "请记住,启用这些功能可以实现Alpha混合,因此将它们用于整个场景通常不是一个好主" "意。" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "渲染优先级" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -30488,9 +30677,11 @@ msgstr "" "您的方法。" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 +#, fuzzy msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "**联系人**:执行短屏幕空间光线投射,以减少偏差产生的间隙。" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -30989,7 +31180,7 @@ msgstr "" "内的敌人会四处移动。 要防止对象在反射中渲染,请使用 *Cull Mask* 设置:" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "内部与外部" @@ -31084,6 +31275,13 @@ msgstr "GI探针" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " @@ -31093,7 +31291,7 @@ msgstr "" "述,对象可以显示反射光或漫反射光。 GI探针类似于反射探针,但它们使用不同且更复" "杂的技术来产生间接光和反射。" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -31105,7 +31303,7 @@ msgstr "" "预烘焙,但可以添加,更改或删除灯光,并且这将实时更新。 在其中一个探针内移动的" "动态对象也将自动从场景接收间接光照。" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 #, fuzzy msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " @@ -31115,18 +31313,18 @@ msgstr "" "就像ReflectionProbe一样,GIProbe可以混合(以更有限的方式),因此可以为舞台提供" "完整的实时照明,而无需借助光照贴图。" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 #, fuzzy msgid "The main downsides of ``GIProbe`` are:" msgstr "GIProbe的主要缺点是:" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "如果没有仔细设计水平,可能会发生少量漏光。 这必须是艺术家调整的。" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." @@ -31134,7 +31332,7 @@ msgstr "" "性能要求高于光照贴图,因此在低端集成GPU中可能无法正常运行(可能需要降低分辨" "率)。" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 #, fuzzy msgid "" "Reflections are voxelized, so they don't look as sharp as with " @@ -31146,21 +31344,21 @@ msgstr "" "它们是体积的,因此任何房间大小或形状都适用于它们。 将它们与屏幕空间反射混合也" "很有效。" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 #, fuzzy msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "它们比Reflection Probes消耗的视频内存要多得多,因此必须小心使用它们。" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 #, fuzzy msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "就像ReflectionProbe一样,只需将GIProbe包在受影响的几何体周围即可。" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 #, fuzzy msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " @@ -31169,18 +31367,18 @@ msgid "" msgstr "" "然后,确保启用几何体将被烘焙。 这对于GIPRobe识别对象很重要,否则它们将被忽略:" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 #, fuzzy msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "设置几何体后,按下3D编辑器工具栏上显示的“烘焙”按钮开始预烘焙过程:" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "添加灯光" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 #, fuzzy msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " @@ -31189,30 +31387,30 @@ msgstr "" "除非存在具有发射的材质,否则GIProbe默认不执行任何操作。 需要将灯光添加到场景" "才能生效。" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" "可以快速查看间接光的效果(建议您关闭所有环境/天空照明以调整它,但如下所示):" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "但在某些情况下,间接光线可能太弱。 灯具有间接乘数来调整:" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 #, fuzzy msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "而且,随着GIPRobe照明实时更新,这种效果立竿见影:" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "反射" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 #, fuzzy msgid "" "For very metallic materials with low roughness, it's possible to appreciate " @@ -31223,7 +31421,7 @@ msgstr "" "对于具有高金属度和低粗糙度的材质,可以欣赏体素反射。 请记住,它们的细节远远少" "于反射探测器或屏幕空间反射,但完全反映了体积。" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 #, fuzzy msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " @@ -31233,20 +31431,20 @@ msgstr "" "GIProbes可以轻松地与Reflection Probes和Screen Space Reflections混合使用,作为" "一个完整的3阶段后备链。 这允许在需要时进行精确反射:" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" "GI探头通常允许与来自天空的照明混合。 打开* Interior *设置时可以禁用此功能。" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "在下面的图像中,差异变得清晰,来自天空的光从内部传播到被忽略。" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." @@ -31254,15 +31452,15 @@ msgstr "" "由于复杂的建筑物可能将室内和室外混合在一起,因此将两个部件的GIProbes结合起来" "非常有效。" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "扭捏" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "GI探针支持一些调整参数:" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 #, fuzzy msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " @@ -31271,29 +31469,29 @@ msgstr "" "** Subdiv **用于探测的细分。 默认值(128)通常适用于中小大小区域。 较大的细分使" "用更多的内存。" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "**范围**探头大小。 可以从Gizmo调整。" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" "**动态范围**探头可以吸收的最大光能。 值越高,光线越亮,但颜色细节越少。" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" "**能量**所有探头的倍增器。 可用于使间接光更亮(尽管最好从灯本身调整它)。" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "**传播**内部有多少光通过探头传播。" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." @@ -31301,7 +31499,7 @@ msgstr "" "**偏差**用于避免在进行体素锥体追踪时自我遮挡的值,通常应高于1.0(1 ==体素大" "小)。" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." @@ -31309,11 +31507,11 @@ msgstr "" "**普通偏差**对某些场景有用的替代偏见类型。 如果常规偏差不起作用,请尝试使用此" "方法。" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "质量" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 #, fuzzy msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " @@ -32050,7 +32248,7 @@ msgstr "" msgid "Tonemap" msgstr "品质图" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -32060,29 +32258,29 @@ msgstr "" "从电影和游戏行业中使用的标准曲线的简短列表中选择将应用于场景的色调映射曲线。 " "色调映射可以使亮区和暗区更均匀,即使结果不那么强。 色调映射选项包括:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "**模式:** 色调映射模式,可以是线性,Reindhart,Filmic或Aces。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "**曝光:** 色调映射曝光,模拟随时间接收的光量。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 #, fuzzy msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "**白色:** 色调映射白色,模拟刻度中白色所在的位置(默认为1.0)。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "自动曝光(HDR)" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -32095,7 +32293,7 @@ msgstr "" "支持简单的高动态范围实现。 当将内部区域与低光和户外相结合时,这通常用于真实" "性。 自动曝光模拟相机(或眼睛),以适应明暗位置和不同光量。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 #, fuzzy msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " @@ -32110,7 +32308,7 @@ msgstr "" "使用能量倍增器,以匹配定向光。 通常,3.0到6.0之间的值足以模拟室内 - 室外条" "件。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " @@ -32119,14 +32317,14 @@ msgstr "" "通过将自动曝光与* Glow *后期处理相结合(更多内容如下),超过色调图** **的像素将" "会流向发光缓冲区,从而在摄影中创造典型的绽放效果。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 #, fuzzy msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "“自动曝光”部分中的用户可控值具有合理的默认值,但您仍然可以调整:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." @@ -32134,7 +32332,7 @@ msgstr "" "**比例:** 用于缩放照明的值。 较亮的值会产生较亮的图像,较小的值会产生较暗的图" "像。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." @@ -32142,34 +32340,34 @@ msgstr "" "** Min Luma:** 自动曝光旨在调整的最小亮度。 亮度是屏幕所有像素中光线的平均" "值。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "** Max Luma:** 自动曝光旨在调整的最大亮度。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "**速度:** 亮度校正的速度。 值越高,发生的校正越快。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 #, fuzzy msgid "Mid- and post-processing effects" msgstr "中后期处理效果" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 #, fuzzy msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "环境支持大量广泛使用的中间和后处理效果。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "屏幕空间反射(SSR)" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -32181,7 +32379,7 @@ msgstr "" "所有情况提供足够的细节。 屏幕空间反射最有意义的场景是物体彼此接触(地板上的物" "体,桌子上的物体,漂浮在水面上等)。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 #, fuzzy msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " @@ -32192,30 +32390,30 @@ msgstr "" "另一个优点(即使只启用最小),它是实时工作(而其他类型的反射是预先计算的)。 这很" "好,可以让人物,汽车等在行走时反映出来。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "一些用户控制的参数可用于更好地调整技术:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "**最大步数**确定反射的长度。 这个数字越大,计算成本就越高。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "**淡入**允许调整淡入曲线,这有助于使接触区域更柔和。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "**淡出**允许调整淡出曲线,因此步长限制会轻微淡出。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." @@ -32223,23 +32421,23 @@ msgstr "" "** Depth Tolerance **可用于屏幕空间射线对间隙的容差。 值越大,忽略的差距就越" "大。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "**粗糙度**将应用屏幕空间模糊来近似具有此材质特征的对象的粗糙度。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "请记住,屏幕空间反射仅适用于反射不透明几何体。 透明对象无法反映。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "屏幕空间环境遮挡(SSAO)" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 #, fuzzy msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " @@ -32254,7 +32452,7 @@ msgstr "" "模拟这个。 然而,问题在于之前提出的所有方法在更大规模(大区域)上的作用比在较小" "几何级别上更大。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 #, fuzzy msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " @@ -32264,7 +32462,7 @@ msgstr "" "恒定的环境颜色和Sky是均匀的,并且在任何地方都是相同的,而GI和反射探头具有更多" "的局部细节,但不足以模拟光线无法填充空心或凹陷特征的情况。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 #, fuzzy msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " @@ -32274,7 +32472,7 @@ msgstr "" "这可以使用Screen Space Ambient Occlusion进行模拟。 正如您在下图中所看到的,它" "的目标是确保凹面区域更暗,模拟光线进入的较窄路径:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " @@ -32283,7 +32481,7 @@ msgstr "" "启用此效果,打开灯光并且无法欣赏它是一个常见的错误。 这是因为SSAO仅作用于* " "ambient * light,而不是直接光。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 #, fuzzy msgid "" "This is why, in the image above, the effect is less noticeable under the " @@ -32294,17 +32492,17 @@ msgstr "" "这就是为什么在上图中,在直射光下(左侧)效果不太明显。 如果您想强制SSAO也使用直" "接光源,请使用** Light Affect **参数(尽管这不正确,有些艺术家喜欢它的样子)。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "当与真正的间接光源结合时,SSAO看起来最好,比如GIProbe:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "可以使用以下几个参数调整SSAO:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." @@ -32312,7 +32510,7 @@ msgstr "" "**半径/强度:** 要控制遮挡的半径或强度,可以使用这两个参数。 半径是世界(公制)" "单位。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." @@ -32320,13 +32518,13 @@ msgstr "" "** Radius2 / Intensity2:** 可以使用辅助半径/强度。 结合大半径和小半径AO通常效" "果很好。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "**偏差:** 这可以通过调整来解决自我遮挡问题,但默认情况下通常效果不错。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 #, fuzzy msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " @@ -32335,7 +32533,7 @@ msgstr "" "**光线影响:** SSAO仅影响环境光线,但增加此滑块可能会影响直射光线。 有些艺术家" "喜欢这种效果。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 #, fuzzy msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " @@ -32344,7 +32542,7 @@ msgstr "" "**质量:** 根据质量,SSAO将针对每个像素对球体进行更多采样。 高品质仅适用于现代" "GPU。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 #, fuzzy msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " @@ -32357,17 +32555,17 @@ msgstr "" "节,但效率不高(通常在上面的高质量设置下效果更好),而3x3会更好地柔化图像(有一" "点像抖动效果)但不保留局部 细节也是如此。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "**边缘清晰度**:这可用于保持边缘的清晰度(避免折痕处没有AO的区域)。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "景深/远模糊" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " @@ -32376,8 +32574,8 @@ msgstr "" "此效果可模拟高端相机的焦距。 它模糊了给定范围后面的物体。 它有一个** **距离" "**, **过渡** 区域(世界单位):" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." @@ -32385,11 +32583,11 @@ msgstr "" "** Amount **参数控制模糊量。 对于较大的模糊,可能需要调整 **质量** 以避免伪" "影。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "景深/近模糊" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " @@ -32398,17 +32596,17 @@ msgstr "" "此效果可模拟高端相机的焦距。 它使靠近相机的物体模糊(在远处模糊的相反方向上作" "用)。 它有一个** **距离**, **过渡** 区域(世界单位):" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "通常使用两种模糊将观众的注意力集中在给定对象上:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "辉光" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " @@ -32417,7 +32615,7 @@ msgstr "" "在摄影和胶片中,当光量超过介质支持的最大值(无论是模拟还是数字)时,它通常会向" "外渗出到图像的较暗区域。 这是在Godot中用** Glow **效果模拟的。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" @@ -32425,7 +32623,7 @@ msgstr "" "默认情况下,即使启用了效果,它也会变弱或不可见。 实际显示它需要发生的两个条件" "之一:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 #, fuzzy msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " @@ -32440,7 +32638,7 @@ msgstr "" "血。 还有一个额外的参数,** HDR Scale **,允许超出阈值的光线缩放(使亮度更高或" "更暗)。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." @@ -32448,21 +32646,21 @@ msgstr "" "Bloom效果的值设置大于0.随着它的增加,它会以更高的数量将整个屏幕发送到辉光处理" "器。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "两者都会导致光从较亮的区域开始流血。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "一旦看到发光,就可以通过一些额外的参数来控制它:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "**强度**是效果的整体比例,可以更强或更弱(0.0将其移除)。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 #, fuzzy msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " @@ -32473,11 +32671,11 @@ msgstr "" "**强度**是高斯滤波器内核处理的强度。 更大的值使滤波器饱和并向外扩展。 一般情" "况下,不需要更改它,因为可以使用 **级别** 更有效地调整大小。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "效果的 **混合模式** 也可以改变:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 #, fuzzy msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " @@ -32487,14 +32685,14 @@ msgstr "" "**添加剂**是最强的,因为它只是在图像上添加了发光效果而不涉及混合。 一般来说," "它太强大而无法使用,但在低强度Bloom下可以看起来很好(产生梦幻般的效果)。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" "**屏幕**是默认值。 它确保发光永远不会比自身更亮,并且可以很好地作为一个整体。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." @@ -32502,13 +32700,13 @@ msgstr "" "** Softlight **是最弱的一种,只会在物体周围产生微妙的色彩干扰。 此模式在黑暗" "场景中效果最佳。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "**替换**可用于模糊整个屏幕或调试效果。 它只显示没有下图的发光效果。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 #, fuzzy msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " @@ -32518,13 +32716,13 @@ msgstr "" "为了改变发光效果的大小和形状,Godot提供 **级别** 。 较小的水平是在物体周围出" "现的强烈发光,而大的水平是覆盖整个屏幕的朦胧发光:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "然而,这个系统的真正优势在于结合水平来创造更有趣的发光模式:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " @@ -32533,29 +32731,29 @@ msgstr "" "最后,由于通过拉伸小的模糊图像来创建最高层,因此可能会看到一些块状。 启用** " "Bicubic Upscaling **会以最低的性能成本获取它。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "调整" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "在处理结束时,Godot提供了进行一些标准图像调整的可能性。" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "第一个是能够改变典型的亮度,对比度和饱和度:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "第二种是通过提供颜色校正梯度。 如下所示的常规黑色到白色渐变将不起作用:" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "但是创建自定义的会允许将每个通道映射到不同的颜色:" @@ -34040,11 +34238,11 @@ msgstr "" "让我们通过添加移动能力,用鼠标环顾四周并跳跃来编程我们的游戏角色。 将以下代码" "添加到``Player.gd``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "这是很多代码,所以让我们按功能分解它:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " @@ -34053,12 +34251,12 @@ msgstr "" "虽然不建议复制和粘贴代码,因为您可以通过手动输入代码来学习很多东西,但您可以" "将此页面中的代码直接复制并粘贴到脚本编辑器中。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "如果这样做,所有复制的代码将使用空格而不是制表符。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -34069,13 +34267,13 @@ msgstr "" "为选项卡”。 这会将所有空格转换为制表符。 您也可以选择“将缩进转换为空格”以将制" "表符转换回空格。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "首先,我们定义一些类变量来决定我们的游戏角色将如何在世界范围内移动。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " @@ -34084,30 +34282,30 @@ msgstr "" "在本教程中, **函数外部定义的变量将被称为“类变量”** 。 这是因为我们可以从脚本" "中的任何位置访问这些变量中的任何一个。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "让我们来看看每个类变量:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "``GRAVITY``:强大的重力让我们失望。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "``vel``:我们的 :ref:`KinematicBody ` 的速度。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" "``MAX_SPEED``:我们可以达到的最快速度。 一旦我们达到这个速度,我们就不会更快。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "``JUMP_SPEED``:我们能跳得多高。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 #, fuzzy msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " @@ -34115,14 +34313,14 @@ msgid "" msgstr "" "``ACCEL``:我们加速的速度有多快。 值越高,我们达到最大速度的速度就越快。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 #, fuzzy msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "``DEACCEL``:我们减速的速度有多快。 价值越高,我们就越快完全停止。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." @@ -34130,11 +34328,11 @@ msgstr "" "``MAX_SLOPE_ANGLE``:我们最陡的角度 :ref:`KinematicBody " "` 将被视为'floor'。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "``camera``: :ref:`Camera ` 节点。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." @@ -34142,7 +34340,7 @@ msgstr "" "``rotation_helper``:一个 :ref:`Spatial ` 节点,包含我们想要在X" "轴上旋转的所有内容(向上和向下)。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " @@ -34151,7 +34349,7 @@ msgstr "" "``MOUSE_SENSITIVITY``:鼠标的敏感程度。 我发现“0.05”的值适用于我的鼠标,但您可" "能需要根据鼠标的敏感程度进行更改。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " @@ -34160,7 +34358,7 @@ msgstr "" "您可以调整其中的许多变量以获得不同的结果。 例如,通过降低 ``GRAVITY`` 和/或增" "加 ``JUMP_SPEED`` ,您可以获得一个更“浮动”的感觉角色。 随意尝试!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." @@ -34168,7 +34366,7 @@ msgstr "" "您可能已经注意到 ``MOUSE_SENSITIVITY`` 写在所有大写字母中,就像其他常量一样," "但 ``MOUSE_SENSITIVITY`` 不是常量。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -34180,25 +34378,25 @@ msgstr "" "但我们希望能够在以后添加可自定义设置时更改该值。 因此,为了提醒自己将其视为一" "个常量,它以全部大写命名。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "现在让我们看一下 ``_ready`` 函数:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" "首先,我们获得“camera”和“rotation_helper”节点,并将它们存储到它们的变量中。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 #, fuzzy msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "然后我们需要将鼠标模式设置为capture,这样鼠标就不能离开游戏窗口。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 #, fuzzy msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " @@ -34208,7 +34406,7 @@ msgstr "" "这将隐藏鼠标并将其保持在屏幕的中心。 我们这样做有两个原因:第一个原因是我们不" "希望游戏角色在玩游戏时看到他们的鼠标光标。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 #, fuzzy msgid "" "The second reason is because we do not want the cursor to leave the game " @@ -34220,7 +34418,7 @@ msgstr "" "游戏角色在窗口外点击的情况,然后游戏将失去焦点。 为了确保这些问题都不会发生," "我们捕获鼠标光标。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " @@ -34229,11 +34427,11 @@ msgstr "" "请参阅 :ref:`输入文档` 用于各种鼠标模式。 我们将只在本教程系列中" "使用 ``MOUSE_MODE_CAPTURED`` 和 ``MOUSE_MODE_VISIBLE`` 。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "接下来让我们来看看``_physics_process``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." @@ -34241,7 +34439,7 @@ msgstr "" "我们在 ``_physics_process`` 中所做的就是调用两个函数: ``process_input`` 和 " "``process_movement`` 。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 #, fuzzy msgid "" "``process_input`` will be where we store all the code relating to player " @@ -34251,7 +34449,7 @@ msgstr "" "``process_input``将存储与游戏角色输入相关的所有代码。 我们希望在其他任何事情" "之前先调用它,以便我们有新的游戏角色输入。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 #, fuzzy msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" @@ -34260,15 +34458,15 @@ msgstr "" "``process_movement`` 是我们将所有必要的数据发送到 :ref:`KinematicBody " "` 所以它可以在游戏世界中移动。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "让我们看看下面的``process_input``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "首先我们将 ``dir`` 设置为空 :ref:`Vector3 `。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " @@ -34277,13 +34475,13 @@ msgstr "" "``dir``将用于存储游戏角色打算移动的方向。 因为我们不希望游戏角色以前的输入影" "响游戏角色超过单个 ``process_movement`` 调用,所以我们重置 ``dir`` 。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "接下来,我们获取相机的全局变换并将其存储到 ``cam_xform`` 变量中。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " @@ -34292,7 +34490,7 @@ msgstr "" "我们需要相机的全局变换的原因是我们可以使用它的方向向量。 许多人发现方向向量令" "人困惑,所以让我们花一点时间来解释它们是如何工作的:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " @@ -34301,7 +34499,7 @@ msgstr "" "世界空间可以定义为:相对于恒定原点,放置所有对象的空间。 每个物体,无论是2D还" "是3D,都在世界空间中占有一席之地。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " @@ -34310,13 +34508,13 @@ msgstr "" "换句话说:世界空间是宇宙中的空间,每个物体的位置,旋转和比例都可以通过称为原点" "的单个已知固定点来测量。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "在Godot中,原点位于``(0,0,0)``,旋转为``(0,0,0)``,标度为``(1,1,1)``。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " @@ -34325,13 +34523,13 @@ msgstr "" "当您打开Godot编辑器并选择一个 :ref:`Spatial ` 基于节点时,会弹" "出一个Gizmo。 默认情况下,每个箭头都使用世界空间方向指向。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "如果您想使用世界空间方向向量移动,您会做这样的事情:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " @@ -34340,22 +34538,22 @@ msgstr "" "请注意我们如何不需要进行任何计算来获得世界空间方向向量。 我们可以定义一些 :" "ref:`Vector3 ` 变量并输入指向每个方向的值。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "以下是2D中的世界空间:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "以下图片仅为示例。 每个箭头/矩形表示方向向量" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "这就是3D的样子:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -34365,13 +34563,13 @@ msgstr "" "请注意,在两个示例中,节点的旋转不会更改方向箭头。 这是因为世界空间是一个常" "数。 无论您如何平移,旋转或缩放对象,世界空间都将*始终指向相同的方向*。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "局部空间不同,因为它考虑了对象的旋转。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 #, fuzzy msgid "" "Local space can be defined as follows: The space in which an object's " @@ -34382,13 +34580,13 @@ msgstr "" "局部空间可以定义如下:对象位置是宇宙起源的空间。 因为原点的位置可以在“N”多个位" "置,所以从局部空间导出的值随着原点的位置而变化。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "这个堆栈溢出问题对世界空间和局部空间有更好的解释。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " @@ -34397,7 +34595,7 @@ msgstr "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development(在这种情况下,局部空间和眼睛空间基本相同)" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " @@ -34407,7 +34605,7 @@ msgstr "" "`Transform ` ,这样我们就可以从 :ref:`Transform " "` 得到 :ref:`Basis ` 。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " @@ -34416,18 +34614,18 @@ msgstr "" "每个 :ref:`Basis ` 有三个向量: ``X`` , ``Y`` 和 ``Z``。 这些向" "量中的每一个指向来自该对象的每个局部空间向量。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" "要使用 :ref:`Spatial ` 节点的本地方向向量,我们使用以下代码:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "以下是2D中的局部空间:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -34437,7 +34635,7 @@ msgstr "" "以下是 :ref:`Spatial ` 装置在您使用本地空间模式时显示。 注意箭" "头如何跟随左侧对象的旋转,这看起来与局部空间的3D示例完全相同。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 #, fuzzy msgid "" "You can change between local and world space modes by pressing T or the " @@ -34447,7 +34645,7 @@ msgstr "" "当您选择了 :ref:`Spatial ` 基于节点时,可以通过按小立方体按钮" "在本地和世界空间模式之间切换。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 #, fuzzy msgid "" "Local vectors are confusing even for more experienced game developers, so do " @@ -34460,11 +34658,11 @@ msgstr "" "切都没有多大意义。 关于局部向量要记住的关键是我们使用局部坐标从对象的角度获取" "方向,而不是使用从世界的角度给出方向的世界向量。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "好的,回到``process_input``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 #, fuzzy msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " @@ -34475,13 +34673,13 @@ msgstr "" "ref:`Vector2 `。 我们将使用它来制作各种虚拟轴,以便将游戏角色" "的输入映射到移动。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "这对于键盘来说似乎有些过分,但是当我们添加游戏手柄输入时,这将有意义。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 #, fuzzy msgid "" "Based on which directional movement action is pressed, we add to or subtract " @@ -34489,7 +34687,7 @@ msgid "" msgstr "" "根据按下的方向移动动作,我们在 ``input_movement_vector`` 中添加或删除。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " @@ -34498,7 +34696,7 @@ msgstr "" "在我们检查了每个定向运动动作之后,我们将 ``input_movement_vector`` 标准化。 " "这使得 ``input_movement_vector`` 的值在“1”半径单位圆内。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -34509,7 +34707,7 @@ msgstr "" "``dir`` 。 这是当游戏角色向前或向后按下时,我们添加相机的本地“Z”轴,以便游戏" "角色相对于相机向前或向后移动。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -34521,7 +34719,7 @@ msgstr "" "``basis.z.normalized()`` 会起作用,但是我们使用 ``-basis.z.normalized()`` 因" "为我们的相机的Z轴面向后方 对其余的游戏角色。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -34532,7 +34730,7 @@ msgstr "" "y`` 我们改为使用 ``input_movement_vector.x`` 。 当游戏角色向左/向右按下时,这" "使得游戏角色相对于相机向左/向右移动。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -34544,12 +34742,12 @@ msgstr "" "了“movement_jump”动作。 如果有,那么我们将游戏角色的“Y”速度设置" "为“JUMP_SPEED”。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "因为我们正在设置Y速度,所以游戏角色将跳到空中。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -34560,7 +34758,7 @@ msgstr "" "捕获鼠标光标。 我们这样做是因为否则我们无法释放光标,这意味着它会在您终止运行" "时停止。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 #, fuzzy msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " @@ -34570,7 +34768,7 @@ msgstr "" "要释放/捕获光标,我们检查鼠标是否可见(释放)。 如果是,我们捕获它,如果它不是" "我们让它可见(释放它)。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." @@ -34578,11 +34776,11 @@ msgstr "" "这就是我们现在为 ``process_input`` 所做的一切。 我们会多次回到此功能,因为我" "们会为游戏角色增加更多复杂性。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "现在让我们看一下``process_movement``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 #, fuzzy msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " @@ -34590,7 +34788,7 @@ msgid "" msgstr "" "首先,我们通过将 ``Y`` 值设置为零来确保 ``dir`` 在 ``Y`` 轴上没有任何运动。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 #, fuzzy msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " @@ -34602,7 +34800,7 @@ msgstr "" "线移动还是对角线移动,这都是我们以恒定速度移动的地方。 如果我们没有标准化,那" "么游戏角色在对角线上移动的速度要比直线移动时快。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." @@ -34610,7 +34808,7 @@ msgstr "" "接下来,我们通过将“GRAVITY * delta”添加到游戏角色的“Y”速度来为游戏角色增加重" "力。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." @@ -34618,7 +34816,7 @@ msgstr "" "之后我们将游戏角色的速度分配给一个新的变量(称为“hvel”),并移除“Y”轴上的任何移" "动。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " @@ -34627,11 +34825,11 @@ msgstr "" "接下来,我们为游戏角色的方向向量设置一个新变量(``target``)。 然后我们将其乘以" "游戏角色的最大速度,以便我们知道游戏角色将在“dir”提供的方向上移动多远。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "之后我们为加速创建一个新变量,名为 ``accel`` 。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -34642,7 +34840,7 @@ msgstr "" "``hvel`` 没有任何“Y”速度,这意味着我们只检查游戏角色是向前,向后,向左还是向" "右移动。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 #, fuzzy msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " @@ -34653,7 +34851,7 @@ msgstr "" "这样游戏角色就会加速,否则我们将``accel`设置为 ``DEACCEL`` 常数 所以游戏角色" "会减速。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -34664,19 +34862,19 @@ msgstr "" "用“move_and_slide”以让 :ref:`KinematicBody ` 处理移动 游" "戏角色通过物理世界。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "``process_movement``中的所有代码都与运动角色演示中的移动代码完全相同!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "我们的最后一个函数是 ``_input`` 函数,谢天谢地它很简短:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 #, fuzzy msgid "" "First we make sure that the event we are dealing with is an :ref:" @@ -34687,7 +34885,7 @@ msgstr "" "` event。 我们还想检查光标是否被捕获,因为如果不" "是,我们不想旋转。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." @@ -34695,7 +34893,7 @@ msgstr "" "请参阅 :ref:`鼠标和输入坐标` 以获取可能的输" "入事件列表。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" @@ -34704,7 +34902,7 @@ msgstr "" "如果事件确实是鼠标移动事件并且捕获了光标,我们将根据以下提供的相对鼠标移动进" "行旋转 :ref:`InputEventMouseMotion `。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " @@ -34713,7 +34911,7 @@ msgstr "" "首先,我们使用相对鼠标运动的 ``Y`` 值旋转 ``X`` 轴上的``rotation_helper`` 节" "点,提供者 :ref:`InputEventMouseMotion `。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." @@ -34721,7 +34919,7 @@ msgstr "" "然后我们通过相对鼠标运动的“X”值旋转整个 :ref:`KinematicBody " "` 在 ``Y`` 轴上。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " @@ -34730,7 +34928,7 @@ msgstr "" "Godot将相对鼠标运动转换为 :ref:`Vector2 ` 其中鼠标上下移动分别" "为“1”和“-1”。 左右移动分别是“1”和“-1”。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " @@ -34739,7 +34937,7 @@ msgstr "" "由于我们如何旋转游戏角色,我们将相对鼠标移动的“X”值乘以“-1”,因此鼠标左右移动" "会使游戏角色左右向同一方向旋转。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " @@ -34748,7 +34946,7 @@ msgstr "" "最后,我们将 ``rotation_helper`` 的 ``X`` 旋转夹在 ``-70`` 和 ``70`` 度之间," "这样游戏角色就不能自己颠倒了。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 #, fuzzy msgid "" "See :ref:`using transforms ` for more information on " @@ -34756,7 +34954,7 @@ msgid "" msgstr "" "请参阅 :ref:`使用变换` 获取有关旋转变换的更多信息。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 #, fuzzy msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " @@ -34767,7 +34965,7 @@ msgstr "" "在接下来的几个教程部分中使用此场景,因此请务必在其中一个场景选项卡中保持打开" "状态。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 #, fuzzy msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." @@ -34778,18 +34976,18 @@ msgstr "" "继续测试代码,方法是按 ``F4`` ,将 ``Testing_Area.tscn`` 作为打开标签,按右上" "角的播放按钮,或按“F6”。 您现在应该能够四处走动,跳到空中,用鼠标环顾四周。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "为游戏角色提供闪光灯和冲刺选项" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 #, fuzzy msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "在我们开始制造武器之前,还有一些我们应该添加的东西。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" @@ -34797,18 +34995,18 @@ msgstr "" "许多FPS游戏都可以选择冲刺和手电筒。 我们可以轻松地将这些添加到我们的游戏角色" "中,所以让我们这样做!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "首先,我们需要在游戏角色脚本中添加更多类变量:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 #, fuzzy msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "所有冲刺变量与具有相似名称的非冲刺变量完全相同。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " @@ -34817,21 +35015,21 @@ msgstr "" "``is_sprinting``是一个布尔值来跟踪游戏角色当前是否正在冲刺,而'`flashlight``" "是我们用来保持游戏角色闪光灯节点的变量。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" "现在我们需要添加几行代码,从 ``_ready`` 开始。 将以下内容添加到``_ready``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 #, fuzzy msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "这将获得闪光灯节点并将其分配给 ``flashlight`` 变量。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" @@ -34839,11 +35037,11 @@ msgstr "" "现在我们需要更改 ``process_input`` 中的一些代码。 在 ``process_input`` 中添加" "以下内容:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "让我们回顾一下:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -34856,7 +35054,7 @@ msgstr "" "中,我们将添加代码,使其在冲刺时更快。 在 ``process_input`` 中,我们将改变 " "``is_sprinting`` 变量。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 #, fuzzy msgid "" "We do something similar to freeing/capturing the cursor for handling the " @@ -34868,7 +35066,7 @@ msgstr "" "``flashlight`` 动作。 如果是,我们检查是否在场景树中看到 ``flashlight`` 。 如" "果是,那么我们隐藏它,如果它不是我们显示它。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" @@ -34876,7 +35074,7 @@ msgstr "" "现在我们需要在 ``process_movement`` 中改变一些东西。 首先,用以下代码替换" "``target * = MAX_SPEED``:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " @@ -34886,14 +35084,14 @@ msgstr "" "``MAX_SPEED`` 。 如果游戏角色正在冲刺,我们将 ``target`` 乘以 " "``MAX_SPRINT_SPEED`` 。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 #, fuzzy msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "现在剩下的就是在短跑时改变加速度。 将``accel = ACCEL``更改为以下内容:" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 #, fuzzy msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " @@ -34902,7 +35100,7 @@ msgstr "" "现在当游戏角色冲刺时,我们将使用 ``SPRINT_ACCEL`` 而不是 ``ACCEL`` ,这将加快" "游戏角色的速度。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" @@ -34910,7 +35108,7 @@ msgstr "" "如果您按下“shift”按钮,您现在应该能够冲刺,并且可以通过按下“F”按钮来打开和关" "闭闪光灯!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 #, fuzzy msgid "" "Go try it out! You can change the sprint-related class variables to make the " @@ -34918,7 +35116,7 @@ msgid "" msgstr "" "去试试吧! 您可以更改与sprint相关的类变量,以便在短跑时让游戏角色更快或更慢!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -34928,27 +35126,27 @@ msgstr "" msgid "Final notes" msgstr "最后的笔记" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 #, fuzzy msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "唷! 这是很多工作。 现在您有一个完全工作的第一人称角色!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" "在 :ref:`doc_fps_tutorial_part_two` 我们将为我们的游戏角色角色添加一些枪支。" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "在这一点上,我们通过短跑和闪光灯从第一人称角度重新创建了运动角色演示!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " @@ -34957,7 +35155,7 @@ msgstr "" "目前,游戏角色脚本将处于制作各种第一人称游戏的理想状态。 例如:恐怖游戏,平台" "游戏,冒险游戏等等!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -34967,7 +35165,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "如果您迷路了,请务必再次阅读代码!" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -44342,9 +44540,10 @@ msgid "Sync the gameplay with audio and music" msgstr "同步游戏音频及音乐" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 +#, fuzzy msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -44354,25 +44553,27 @@ msgstr "" "音乐来说这并不重要,因为在大多数游戏中它不与游戏互动。" #: ../../docs/tutorials/audio/sync_with_audio.rst:11 +#, fuzzy msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" "不过,对于一些游戏(主要是节奏游戏),可能需要让玩家的动作与歌曲中发生的事情同" "步(通常与拍子数同步)。因此,为精确的回放位置提供更精确的计时信息,是非常受欢" "迎的。" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 +#, fuzzy msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" "实现精度非常低的回放计时是非常困难的。因为在音频回放过程中有很多因素在起作" "用:" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." @@ -44380,60 +44581,64 @@ msgstr "" "音频以块的形式混合(不是连续的),取决于使用的音频缓冲区的大小(检查项目设置中的" "延迟)。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." -msgstr "音频混合后有延迟,混合后不会立即播放。" +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." +msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "图形应用程序接口延迟显示两到三帧。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "当在电视上播放时,由于图像处理可能会增加一些延迟。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 +#, fuzzy msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" "减少延迟的最常见方法是收缩音频缓冲区(同样,通过编辑项目设置中的延迟设置)。问" "题是,当延迟太小时,它将需要相当高的CPU数量的声音混合。这就增加了跳音的风险" "(由于混音回调丢失,导致声音出现裂痕)。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 +#, fuzzy msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" "这是一种常见的权衡,因此Godot附带了合理的默认值,一般这些默认值不需要更改。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 +#, fuzzy msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" "最后的问题是,处理需要同步的游戏,而不是这种轻微的延迟。从Godot3.2版本开始," "为了获得更精确的回放时间,添加了一些辅助工具。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "使用系统时钟同步" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 +#, fuzzy msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" "如前所述,如果您调用:参考:`音频流播放器.播放()<类_音频流播放器_方法_播放>`," "声音不会立即开始,而是当音频线程处理下一个块时。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." @@ -44442,26 +44647,26 @@ msgstr "" "这个延迟是无法避免的,但是可以通过调用来预估:参考:`音频服务.获取_时间_至_下个" "_混音()<类_音频服务_方法_获取_时间_至_下个_混音>`。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "加上这两个,几乎可以准确地猜到音效或音乐什么时候开始在扬声器中播放:" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "这样,就可以在*_处理()*函数中获得实际的回放位置:" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." @@ -44469,7 +44674,7 @@ msgstr "" "然而,从长远来看,由于声音硬件时钟永远不会与系统时钟完全同步,它们计时的信息" "会慢慢消失。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -44479,11 +44684,11 @@ msgstr "" "在节奏游戏中,一首歌在几分钟后开始和结束,这种方法很好(也是推荐的方法)。而对" "于一款回放时间更长的游戏来说,游戏最终将失去同步,需要一种不同的方法。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "使用声音硬件时钟同步" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -44498,26 +44703,26 @@ msgstr "" "调混合一个声音块时),如此多的调用可以返回相同的值。除此之外,由于前面提到的原" "因,该值也将与扬声器不同步。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "将这个函数的返回值添加到*获取_回放_位置()*可以提高精度:" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "为了提高精度,处理延迟信息(音频混合后需要多少时间才能被听到):" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -44529,7 +44734,7 @@ msgstr "" "值(如果小于,则将其丢弃)。这个方法也不如之前的精确,但它适用于任何长度的歌" "曲,或者将任何东西(例如音效)与音乐同步。" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "下面是使用这种方法之前相同的代码:" @@ -45526,7 +45731,7 @@ msgstr "" "下 ``move_and_slide()`` 不能提供您想要的响应。" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "示例" @@ -52257,10 +52462,6 @@ msgstr "" "法是将保存的游戏数据存储在远程服务器上,其中游戏角色只能对其中的保存数据进行" "授权更改。如果您的游戏涉及到真正的金钱,您无论如何都需要这样做。" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "国际化" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "使游戏国际化" @@ -61821,7 +62022,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -74819,6 +75020,11 @@ msgstr "" "节点中的“暂停模式”属性来完成的:" #: ../../docs/tutorials/misc/pausing_games.rst:53 +#, fuzzy +msgid "You can achieve the same result in code:" +msgstr "您可以使用以下命令检查所有远程服务器的列表:" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -74833,18 +75039,18 @@ msgstr "" "项,依此类推。 最终,如果在任何祖父中找不到状态,则使用SceneTree中的暂停状" "态。 这意味着,默认情况下,当游戏暂停时,每个节点都将暂停。" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "节点的三种可能状态有:" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" "**继承** : 进程取决于父,祖父节点等的状态。具有非继承状态的第一个父节点。" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." @@ -74852,7 +75058,7 @@ msgstr "" "**停止** : 无论什么情况下,停止节点(以及继承模式下的子节点)。 当暂停时,此节" "点将不会被放入进程。" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." @@ -74860,7 +75066,7 @@ msgstr "" "**进程** : 无论什么情况下, 处理节点(以及继承模式下的子节点)。 无论暂停或不暂" "停, 此节点仍会在进程中。" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" @@ -74868,7 +75074,7 @@ msgstr "" "一个示例是创建一个带有控件的弹出窗口或面板,并将其暂停模式设置为“进程”然后隐" "藏它:" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " @@ -74877,17 +75083,17 @@ msgstr "" "只需设置暂停弹出窗口的根节点项为“进程”,所有子孙都将继承该状态。 这样,场景树" "的这个分支将在暂停时继续工作。" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "最后,当按下暂停按钮(任何按钮都可以)时,启用暂停并显示暂停屏幕。" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "要删除暂停,请在暂停屏幕关闭时执行相反操作:" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "就是这样,喵!" @@ -76870,9 +77076,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -76903,7 +77109,7 @@ msgstr "第三方工具" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -76932,7 +77138,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -76956,9 +77162,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -77455,7 +77661,7 @@ msgid "`SCons `__ build system." msgstr "`SCons `__构建系统。" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -77813,7 +78019,7 @@ msgstr "" "此可执行文件包含整个引擎,并且运行时没有任何依赖性。 执行它将调出项目经理。" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -78007,17 +78213,16 @@ msgstr "" "知的发行版:" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "**Arch**" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "**Debian** / **Ubuntu**" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "**Fedora**" @@ -78026,7 +78231,7 @@ msgid "**macOS**" msgstr "**macOS**" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "**Mageia**" @@ -78105,7 +78310,7 @@ msgid "With the following names:" msgstr "使用以下名称:" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -78139,13 +78344,13 @@ msgid "GCC or Clang" msgstr "GCC 或者 Clang 编译器" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" -msgstr "Python 2.7 或更高版本(Python 3的话需要安装 Scons 3.0以上版本)" +#, fuzzy +msgid "Python 3 or 2.7+" +msgstr "Python 2.7+或Python 3.5+" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" -msgstr "Scons 构建系统" +msgid "SCons build system (3.0 or later for Python 3)" +msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 msgid "pkg-config (used to detect the dependencies below)" @@ -78164,57 +78369,55 @@ msgid "ALSA development libraries" msgstr "ALSA开发库" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" -msgstr "PulseAudio 开发依赖库(用于音效支持)" +#, fuzzy +msgid "PulseAudio development libraries" +msgstr "ALSA开发库" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "Freetype (编辑器需要)" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "OpenSSL (用于 HTTPS 和 TLS 功能的实现)" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "*可选* - libudev(使用``udev = yes``构建)" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "*可选* - yasm(用于WebM SIMD优化)" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "各个发型版的安装指令" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#, fuzzy +msgid "**Arch Linux**" +msgstr "**Arch**" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "**FreeBSD**" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "**Gentoo**" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "**OpenBSD**" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "**openSUSE**" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "**Solus**" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "启动终端,然后进入引擎源代码的根目录。键入下面的指令:" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -78225,7 +78428,7 @@ msgstr "" "中有核心一样,如果不是一两个。 随意将 ``-j`` 选项添加到您在下面看到的任何" "SCons命令。" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -78235,65 +78438,76 @@ msgstr "" "如果一切顺利,编译结果将存放在 ``bin`` 目录下。 这个可执行文件包含了整个引" "擎,无需任何依赖项。 执行它将会启动项目管理器。" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "如果您希望使用 Clang 而不是 GCC 编译器, 可以使用这个命令:" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" "在 OpenBSD 平台上必须使用 Clang,否则在构建字体相关的依赖时会遇到一些麻烦。" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "构建导出模板" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" "要构建 X11 (Linux,\\*BSD)平台的导出模板, 执行构建系统时需要带上这些参数:" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "( 32 位 )" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "( 64 位 )" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 +#: ../../docs/development/compiling/compiling_for_x11.rst:138 +#, fuzzy msgid "" -"Note that cross compiling for the opposite bits (64/32) as your host " +"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 "" "请注意,跨CPU位数( 64/32)编译不总是这样直截了当,这可能还需要您通过 " "``chroot`` 切换编译环境。" -#: ../../docs/development/compiling/compiling_for_x11.rst:138 +#: ../../docs/development/compiling/compiling_for_x11.rst:141 msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "要创建导出模板,需要您手动把编译出来的二进制文件拷贝到这里:" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" "并且还需要将文件命名成这样(在 Godot 中, \\*BSD 平台也被视为 \"Linux X11\"):" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 +#, fuzzy 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." +"in the ``bin/`` directory of your Godot source folder, so the next time you " +"build, you automatically have the custom templates referenced." msgstr "" -"这样,您就您不必拷贝他们了。您可以直接把自定义模板的可执行文件指向您在 bin/ " -"下面构建好的二进制文件, 下一次您再修改引擎就不需要做任何配置了。" +"您甚至不需要复制它们,您只需要在Godot源文件夹的``bin \\``目录中引用结果文件," +"这样您下次构建时就会自动引用自定义模板。" #: ../../docs/development/compiling/compiling_for_osx.rst:4 msgid "Compiling for macOS" @@ -78303,6 +78517,10 @@ msgstr "为macOS平台编译" msgid "Python 2.7+ or Python 3.5+" msgstr "Python 2.7+或Python 3.5+" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "Scons 构建系统" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "或者更轻量的Command Line Tools for Xcode" @@ -79392,7 +79610,6 @@ msgid "MSBuild" msgstr "MSBuild" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "NuGet" @@ -79400,7 +79617,7 @@ msgstr "NuGet" msgid "pkg-config" msgstr "pkg-config" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " @@ -79409,11 +79626,11 @@ msgstr "" "您可能需要为NuGet导入必要的证书才能执行HTTPS请求。 您可以使用以下命令执行此操" "作(在Windows上,您可以从Mono命令行提示符运行它):" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "环境变量" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 #, fuzzy msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " @@ -79426,7 +79643,7 @@ msgstr "" "方的 mono 安装目录, 根据系统位数不同,这些环境变量分别是 ``MONO32_PREFIX`` " "和 ``MONO64_PREFIX``。" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 #, fuzzy msgid "" "This is the directory that contains the subdirectories ``include`` and " @@ -79434,11 +79651,11 @@ msgid "" msgstr "" "您所指定的文件夹必须包含 ``bin``、 ``include``、 ``lib`` 这几个子目录。" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "启用 Mono 模块" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." @@ -79446,11 +79663,11 @@ msgstr "" "默认情况下 mono 模块是禁用的。您可以通过传递 ``module_mono_enabled=yes`` 参数" "给 Scons 构建系统来启用它。" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "生成胶水代码" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -79460,7 +79677,7 @@ msgstr "" "这些粘合代码用于封装 mono 所需要的一些功能。要生成这些代码,您需要首先通过 " "``tools=yes`` 和 ``mono_glue=no`` 配置构建一遍 Godot:" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " @@ -79470,7 +79687,7 @@ msgstr "" "generate-mono-glue`` 参数来生成胶水代码到您指定的目录。这里我们传入的路径是 " "``modules/mono/glue``。" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " @@ -79479,7 +79696,7 @@ msgstr "" "这个命令告诉 Godot 生成胶水代码到 *modules/mono/glue/mono_glue.gen.cpp* 文" "件。 执行此步骤之后,您后面要再次构建就不需要重复进行这个操作了。" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -79496,12 +79713,12 @@ msgstr "" "持编译过Godot,那么您可能有类似名称的二进制文件,但没有此后缀,不能用于生成" "Mono粘合剂。" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "注意" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -79512,7 +79729,7 @@ msgstr "" "本,它的构建结果是仅用于控制生成胶水代码的临时二进制文件。Godot 会在启动时打" "印一条消息,提醒您这件事。" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 #, fuzzy msgid "" "The glue sources must be regenerated every time the ClassDB registered API " @@ -79524,11 +79741,11 @@ msgstr "" "胶水代码在每次 ClassDB 的API有变动时都要重新生成。 如果有API和生成的胶水代码" "不匹配, Godot 将在启动时在控制台输出错误信息。" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "用Mono胶重建" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " @@ -79537,17 +79754,17 @@ msgstr "" "一旦您生成了Mono胶水,就可以使用 ``mono_glue = yes`` 构建最终的二进制文件。 " "这是 ``mono_glue`` 的默认值,所以您也可以省略它。 您可以构建启用Mono的编辑器:" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "启用Mono的导出模板:" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "如果一切顺利,除了正常输出外,SCons应该在 ``bin`` 目录中创建以下文件:" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -79557,7 +79774,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 #, fuzzy msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " @@ -79571,19 +79788,19 @@ msgstr "" "数据目录。 该目录对于正常运行很重要,必须与Godot一起分发。 有关此目录的更多详" "细信息,请参见 :ref:`Data directory` 。" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "示例(Windows)" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "示例 (x11)" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "数据目录" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 #, fuzzy msgid "" "The data directory is a dependency for Godot binaries built with the mono " @@ -79595,7 +79812,7 @@ msgstr "" "数据目录是在启用单声道模块的情况下构建的Godot二进制文件的依赖项。 它包含对" "Godot正确运行很重要的文件。 它必须分布在Godot可执行文件旁边。" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -79606,7 +79823,7 @@ msgstr "" "..`` ,例如 ``data.mono.x11.32.debug`` 或 ``data." "mono.windows.64.release`` 。" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " @@ -79615,7 +79832,7 @@ msgstr "" "对于导出模板,数据目录仅包含Mono框架程序集和配置文件,以及一些共享库依赖项," "如 ``MonoPosixHelper`` 。" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -79627,7 +79844,7 @@ msgstr "" "录与游戏可执行文件一起复制,但名称将更改为 ``data_`` ,其中 " "```` 是项目设置中指定的应用程序名称 ``application/config/name`` 。" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " @@ -79635,25 +79852,25 @@ msgid "" msgstr "" "对于macOS,导出模板被压缩为zip文件,数据目录的内容可以放在zip中的以下位置:" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "``bin/data.mono.../Mono/lib``" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "``bin/data.mono.../Mono/etc``" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " @@ -79662,25 +79879,25 @@ msgstr "" "Godot编辑器的数据目录名称将始终为“GodotSharp”。 该目录的主要结构具有以下子目" "录:" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "``Api``(可选)" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "``Mono``(可选)" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "``工具``(必填)" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "``Tools``子目录包含编辑器所需的工具,如 ``GodotSharpTools`` 程序集。" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -79696,7 +79913,7 @@ msgstr "" "您可以通过在构建编辑器时传递“copy_mono_root = yes`”选项,让SCons将这些文件复" "制到此子目录中。" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -79710,13 +79927,13 @@ msgstr "" "生成和构建它们并将它们放在此子目录中来避免。 如果编辑器可以在那里找到它们,它" "将避免再次生成和构建它们的步骤。" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "以下是用于构建和复制Godot API程序集的示例脚本:" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " @@ -79725,43 +79942,43 @@ msgstr "" "该脚本假定它是从SConstruct所在的目录执行的。 ````指的是在启用" "Mono模块的情况下编译的工具二进制文件。" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" "对于macOS,如果Godot编辑器作为包分发,则数据目录的内容可以放在以下位置:" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "``bin/data.mono.../Api``" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "``.app/Contents/Frameworks/GodotSharp/Api``" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "``.app/Contents/Resources/GodotSharp/Mono/etc``" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "``bin/data.mono.../Tools``" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "``.app/Contents/Frameworks/GodotSharp/Tools``" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "导出到Android" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -79770,42 +79987,42 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "命令行选项" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "以下是使用mono模块构建时可用的命令行选项列表:" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "**module_mono_enabled**:在启用单声道模块的情况下构建Godot(是| **否**)" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" @@ -79813,24 +80030,24 @@ msgstr "" "**mono_glue**: 是否在构建中包含glue源文件并将 `MONO_GLUE_DISABLED` 定义为预处" "理器宏(**是** | 否)" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "**xbuild_fallback**: 如果MSBuild不可用,是否回退到xbuild(是| **否** )" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "**mono_static**: 是否静态链接单声道运行时(是| **否**)" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -79983,7 +80200,7 @@ msgstr "" "但是,请记住,某些防病毒程序可能会将UPX打包的二进制文件检测为病毒。 因此,如" "果您要发布商业游戏,请务必签署您的二进制文件或使用将分发它们的平台。" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr "使用脚本加密密钥编译" @@ -86875,6 +87092,109 @@ msgstr "" "`Zeef Godot Engine:由Andre Schmitz撰写的精选资源目录 `_" +#~ msgid "" +#~ ":ref:`Autoloads versus internal nodes " +#~ "`" +#~ msgstr ":ref:`自动加载与内部节点 `" + +#~ msgid "" +#~ ":ref:`Animating thousands of fish with MultiMesh " +#~ "`" +#~ msgstr "" +#~ ":ref:`使用复合网格制作数千条鱼的动画 `" + +#~ msgid ":ref:`Advanced post-processing `" +#~ msgstr ":ref:`高级后期处理 `" + +#~ msgid "" +#~ ":ref:`Compiling with script encryption key " +#~ "`" +#~ msgstr "" +#~ ":ref:`使用脚本加密密钥编译 `" + +#~ msgid "" +#~ ":ref:`Binding to external libraries `" +#~ msgstr ":ref:`绑定到外部库 `" + +#~ msgid "Killer features" +#~ msgstr "杀手级的功能" + +#~ msgid "" +#~ "Note that Godot editor allows you to dock each panel at the side of the " +#~ "scene editor you wish." +#~ msgstr "请注意,Godot编辑器允许您任意将各个面板停靠在场景编辑器的一侧。" + +#~ msgid "" +#~ "These are the most important concepts you need to remember: \"node\", " +#~ "\"parent node\", and \"child node\"." +#~ msgstr "这些是您需要记住的最重要的概念:“节点”,“父节点”和“子节点”。" + +#~ msgid "" +#~ "We previously observed that there is no perfect solution to set a project " +#~ "architecture. Any solution will work for Unity and Godot, so this point " +#~ "has a lesser importance." +#~ msgstr "" +#~ "我们之前观察到,没有完美的设置项目体系结构的解决方案。 任何解决方案都适用" +#~ "于 Unity 和 Godot ,所以这一点不太重要。" + +#~ msgid "Prefab -> Externalized branch" +#~ msgstr "预制 -> 外部化分支" + +#~ msgid "" +#~ "Here's an example that creates a custom signal in one script and connects " +#~ "the custom signal to a method in a separate script, using the :ref:" +#~ "`Object.connect() ` method:" +#~ msgstr "" +#~ "下面是一个示例, 它在一个脚本中创建自定义信号, 并使用 :ref:`Object." +#~ "connect() ` 方法将自定义信号连接到单独脚本中" +#~ "的方法:" + +#~ msgid "" +#~ "Here is an example that creates a connection between a button's " +#~ "``pressed`` signal and a method, binding the button instance to the " +#~ "connection. The handler uses the bound argument to print which button " +#~ "instance was pressed." +#~ msgstr "" +#~ "下面的示例在按钮的 ``pressed`` 信号和方法之间创建连接,将按钮实例绑定到该" +#~ "连接。\n" +#~ "处理程序使用绑定参数打印按下了哪个按钮实例。" + +#~ msgid "" +#~ "Signals are generated by the :ref:`Object.emit_signal() " +#~ "` method which broadcasts the signal and " +#~ "arguments." +#~ msgstr "" +#~ "信号由 :ref:`Object.emit_signal() ` 方法" +#~ "生成,该方法广播信号和参数。" + +#~ msgid "" +#~ "Extending a previous example to use all the features of GDScript signals:" +#~ msgstr "扩展前面的示例,使用GDScript信号的所有特性:" + +#~ msgid "" +#~ "Audio has latency after mixed, it doesn't immediately play after mixed." +#~ msgstr "音频混合后有延迟,混合后不会立即播放。" + +#~ msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +#~ msgstr "Python 2.7 或更高版本(Python 3的话需要安装 Scons 3.0以上版本)" + +#~ msgid "PulseAudio development libraries (for sound support)" +#~ msgstr "PulseAudio 开发依赖库(用于音效支持)" + +#~ msgid "Freetype (for the editor)" +#~ msgstr "Freetype (编辑器需要)" + +#~ msgid "OpenSSL (for HTTPS and TLS)" +#~ msgstr "OpenSSL (用于 HTTPS 和 TLS 功能的实现)" + +#~ 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 "" +#~ "这样,您就您不必拷贝他们了。您可以直接把自定义模板的可执行文件指向您在 " +#~ "bin/ 下面构建好的二进制文件, 下一次您再修改引擎就不需要做任何配置了。" + #~ msgid "" #~ "Consider breaking a line when it's longer than 100 characters. And it's " #~ "also a good practice to insert a line feed (LF) character at the end of a " @@ -89466,9 +89786,6 @@ msgstr "" #~ "wide templates." #~ msgstr "安装在每个用户位置的模板仍会覆盖系统范围的模板。" -#~ msgid "This option is only available on unix based platforms." -#~ msgstr "此选项仅适用于基于unix的平台。" - #~ msgid "Self contained mode" #~ msgstr "自包含模式" diff --git a/weblate/zh_TW.po b/weblate/zh_TW.po index a623318159..a5f660725a 100644 --- a/weblate/zh_TW.po +++ b/weblate/zh_TW.po @@ -15,7 +15,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: 2019-06-16 22:53+0200\n" +"POT-Creation-Date: 2019-07-02 14:18+0200\n" "PO-Revision-Date: 2019-04-29 11:44+0000\n" "Last-Translator: cnieFIT \n" "Language-Team: Chinese (Traditional) `_上的``#godotengine-doc`` 頻道和我們討論!" -#: ../../docs/index.rst:59 +#: ../../docs/index.rst:63 +msgid "weblate_widget" +msgstr "" + +#: ../../docs/index.rst:66 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "網站的主要文檔分為以下幾個部分:" -#: ../../docs/index.rst:61 +#: ../../docs/index.rst:68 msgid "General" msgstr "一般" -#: ../../docs/index.rst:69 +#: ../../docs/index.rst:76 msgid "Getting started" msgstr "入門" -#: ../../docs/index.rst:80 +#: ../../docs/index.rst:87 msgid "Tutorials" msgstr "教程" -#: ../../docs/index.rst:110 +#: ../../docs/index.rst:117 msgid "Development" msgstr "開發" -#: ../../docs/index.rst:120 +#: ../../docs/index.rst:127 msgid "Community" msgstr "社區" @@ -1120,363 +1124,362 @@ msgid "" msgstr "" #: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.0" +msgid "New tutorials since version 3.1" msgstr "" -#: ../../docs/about/docs_changelog.rst:17 -msgid "Step-by-step" +#: ../../docs/about/docs_changelog.rst:17 ../../docs/tutorials/i18n/index.rst:2 +msgid "Internationalization" msgstr "" #: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`Signals `" +msgid ":ref:`doc_localization_using_gettext`" msgstr "" -#: ../../docs/about/docs_changelog.rst:20 -msgid ":ref:`Exporting `" +#: ../../docs/about/docs_changelog.rst:22 +msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:23 +#: ../../docs/about/docs_changelog.rst:25 +msgid "Step-by-step" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:27 +msgid ":ref:`doc_signals`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:28 +msgid ":ref:`doc_exporting`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:31 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" -#: ../../docs/about/docs_changelog.rst:25 -msgid ":ref:`Custom builds for Android `" +#: ../../docs/about/docs_changelog.rst:33 +msgid ":ref:`doc_android_custom_build`" msgstr "" -#: ../../docs/about/docs_changelog.rst:37 +#: ../../docs/about/docs_changelog.rst:45 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:28 -msgid ":ref:`Introduction `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`What are Godot classes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:30 -msgid ":ref:`Scene organization `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:31 -msgid ":ref:`Scenes versus scripts `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 -msgid "" -":ref:`Autoloads versus internal nodes `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:33 -msgid ":ref:`Node alternatives `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`Godot interfaces `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`Godot notifications `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:36 -msgid ":ref:`Data preferences `" +msgid ":ref:`doc_introduction_best_practices`" msgstr "" #: ../../docs/about/docs_changelog.rst:37 -msgid ":ref:`Logic preferences `" +msgid ":ref:`doc_what_are_godot_classes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:38 +msgid ":ref:`doc_scene_organization`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:39 +msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" #: ../../docs/about/docs_changelog.rst:40 +msgid ":ref:`doc_autoloads_versus_internal_nodes`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:41 +msgid ":ref:`doc_node_alternatives`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:42 +msgid ":ref:`doc_godot_interfaces`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:43 +msgid ":ref:`doc_godot_notifications`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:44 +msgid ":ref:`doc_data_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:45 +msgid ":ref:`doc_logic_preferences`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:48 #: ../../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:42 -msgid ":ref:`Typed GDscript `" +#: ../../docs/about/docs_changelog.rst:50 +msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:45 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:53 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" -#: ../../docs/about/docs_changelog.rst:47 -msgid ":ref:`2D lights and shadows `" +#: ../../docs/about/docs_changelog.rst:55 +msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:48 -msgid ":ref:`2D meshes `" +#: ../../docs/about/docs_changelog.rst:56 +msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:59 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`CSG `" +#: ../../docs/about/docs_changelog.rst:61 +msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 -msgid "" -":ref:`Animating thousands of fish with MultiMesh " -"`" +#: ../../docs/about/docs_changelog.rst:62 +msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:55 -msgid "" -":ref:`Controlling thousands of fish with Particles " -"`" +#: ../../docs/about/docs_changelog.rst:63 +msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:58 +#: ../../docs/about/docs_changelog.rst:66 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`Ragdoll system `" +#: ../../docs/about/docs_changelog.rst:68 +msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:61 -msgid ":ref:`Softbody `" +#: ../../docs/about/docs_changelog.rst:69 +msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:72 #: ../../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:66 -msgid ":ref:`2D skeletons `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`AnimationTree `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`Containers `" +#: ../../docs/about/docs_changelog.rst:74 +msgid ":ref:`doc_2d_skeletons`" msgstr "" #: ../../docs/about/docs_changelog.rst:75 +msgid ":ref:`doc_animation_tree`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:78 ../../docs/tutorials/gui/index.rst:2 +msgid "GUI" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:80 +msgid ":ref:`doc_gui_containers`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:83 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:77 -msgid ":ref:`Using a Viewport as a texture `" +#: ../../docs/about/docs_changelog.rst:85 +msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Custom post-processing `" +#: ../../docs/about/docs_changelog.rst:86 +msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:89 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:83 -msgid "" -":ref:`Intro to shaders: 2D and 3D water (7 video tutorials) " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:84 -msgid "" -":ref:`Migrating to Godot’s shading language " -"`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -msgid ":ref:`Advanced post-processing `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:91 +msgid ":ref:`doc_intro_to_shaders_water_workshop`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:92 +msgid ":ref:`doc_migrating_to_godot_shader_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:93 +msgid ":ref:`doc_advanced_postprocessing`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:99 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`What are shaders? `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:89 -msgid ":ref:`Your first CanvasItem shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:90 -msgid ":ref:`Your first Spatial shader `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -msgid "" -":ref:`Your first Spatial shader: Part 2 `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:98 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:94 -msgid ":ref:`Shaders `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:95 -msgid ":ref:`Shading language `" -msgstr "" - #: ../../docs/about/docs_changelog.rst:96 -msgid ":ref:`Spatial shaders `" +msgid ":ref:`doc_what_are_shaders`" msgstr "" #: ../../docs/about/docs_changelog.rst:97 -msgid ":ref:`CanvasItem shaders `" +msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:98 -msgid ":ref:`Particles shaders `" +msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:101 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:103 -msgid ":ref:`VR starter tutorial `" +#: ../../docs/about/docs_changelog.rst:99 +msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" #: ../../docs/about/docs_changelog.rst:106 +msgid "Shading Reference:" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:102 +msgid ":ref:`doc_shaders`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:103 +msgid ":ref:`doc_shading_language`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:104 +msgid ":ref:`doc_spatial_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:105 +msgid ":ref:`doc_canvas_item_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:106 +msgid ":ref:`doc_particle_shader`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:109 ../../docs/tutorials/vr/index.rst:2 +msgid "VR" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:111 +msgid ":ref:`doc_vr_starter_tutorial`" +msgstr "" + +#: ../../docs/about/docs_changelog.rst:114 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 -msgid "" -":ref:`Customizing the Web export HTML page `" +#: ../../docs/about/docs_changelog.rst:116 +msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:119 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 -msgid ":ref:`Thread safe APIs `" +#: ../../docs/about/docs_changelog.rst:121 +msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:116 +#: ../../docs/about/docs_changelog.rst:124 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "動畫" -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`Using MultiMesh `" +#: ../../docs/about/docs_changelog.rst:126 +msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`Using servers `" +#: ../../docs/about/docs_changelog.rst:127 +msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:122 +#: ../../docs/about/docs_changelog.rst:130 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 -msgid ":ref:`Fixing jitter and stutter `" +#: ../../docs/about/docs_changelog.rst:132 +msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:125 -msgid ":ref:`Running code in the editor `" +#: ../../docs/about/docs_changelog.rst:133 +msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 -msgid ":ref:`Change scenes manually `" +#: ../../docs/about/docs_changelog.rst:134 +msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 -msgid "" -":ref:`Differences between GLES2 and GLES3 `" +#: ../../docs/about/docs_changelog.rst:135 +msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:130 +#: ../../docs/about/docs_changelog.rst:138 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:132 -msgid ":ref:`Complying with Licenses `" +#: ../../docs/about/docs_changelog.rst:140 +msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:135 +#: ../../docs/about/docs_changelog.rst:143 #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:90 -#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_x11.rst:78 #: ../../docs/development/compiling/compiling_for_osx.rst:23 #: ../../docs/development/compiling/compiling_for_ios.rst:19 #: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 -msgid ":ref:`Optimizing a build for size `" +#: ../../docs/about/docs_changelog.rst:145 +msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:138 -msgid "" -":ref:`Compiling with script encryption key " -"`" +#: ../../docs/about/docs_changelog.rst:146 +msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:141 +#: ../../docs/about/docs_changelog.rst:149 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 -msgid "" -":ref:`Binding to external libraries `" +#: ../../docs/about/docs_changelog.rst:151 +msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" -#: ../../docs/about/docs_changelog.rst:146 +#: ../../docs/about/docs_changelog.rst:154 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "創建內容" -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`Making trees `" +#: ../../docs/about/docs_changelog.rst:156 +msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:159 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "挿件" -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`Making main screen plugins `" +#: ../../docs/about/docs_changelog.rst:161 +#, fuzzy +msgid ":ref:`doc_making_main_screen_plugins`" +msgstr "創建內容" + +#: ../../docs/about/docs_changelog.rst:162 +msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:154 -msgid ":ref:`Spatial gizmo plugins `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:155 -msgid ":ref:`Creating Android plugins `" -msgstr "" +#: ../../docs/about/docs_changelog.rst:163 +#, fuzzy +msgid ":ref:`doc_android_plugin`" +msgstr "Android" #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 @@ -1952,7 +1955,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 #: ../../docs/getting_started/editor/external_editor.rst:32 #: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:171 +#: ../../docs/development/compiling/compiling_with_mono.rst:170 msgid "Editor" msgstr "編輯器" @@ -2247,11 +2250,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing.rst:107 msgid "" "You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Set its " -"``Bounce`` to ``1`` and press \"Play\"." +"and then in the ``Main`` scene, select one of the instanced balls. Resources " +"like ``PhysicsMaterial`` are shared between instances by default, so we need " +"to make it unique. Click on the down arrow and select \"Make Unique\". Set " +"its ``Bounce`` to ``1`` and press \"Play\"." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:113 +#: ../../docs/getting_started/step_by_step/instancing.rst:115 msgid "" "Notice that a grey \"revert\" button appears next to the adjusted property. " "When this button is present, it means you modified a property in the " @@ -2261,14 +2266,14 @@ msgid "" "saved scene." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:121 +#: ../../docs/getting_started/step_by_step/instancing.rst:123 #: ../../docs/getting_started/step_by_step/signals.rst:208 #: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 msgid "Conclusion" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing.rst:123 +#: ../../docs/getting_started/step_by_step/instancing.rst:125 msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " @@ -2948,8 +2953,8 @@ msgstr "組" msgid "" "Groups in Godot work like tags you might have come across in other software. " "A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to do add nodes to groups. " -"The first is from the UI, using the Groups button under the Node panel:" +"for organizing large scenes. There are two ways to add nodes to groups. The " +"first is from the UI, using the Groups button under the Node panel:" msgstr "" #: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 @@ -3127,7 +3132,7 @@ msgid "Only GDScript creates global variables for each named script." msgstr "" #: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1464 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 @@ -4328,36 +4333,36 @@ msgid "" "the current node at the end of the current frame." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1149 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1156 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:1157 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1168 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:1162 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1173 msgid "Finishing up" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1164 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1175 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:1169 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1180 #: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 msgid "Background" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1171 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1182 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 ` " @@ -4367,17 +4372,17 @@ msgid "" "screen." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1178 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 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:1182 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1193 msgid "Sound effects" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1184 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1195 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: " @@ -4385,7 +4390,7 @@ msgid "" "for when the player loses." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1189 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 msgid "" "Add two :ref:`AudioStreamPlayer ` nodes as children " "of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " @@ -4393,28 +4398,28 @@ msgid "" "corresponding audio file." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1205 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:1197 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1208 msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1200 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1211 msgid "Keyboard Shortcut" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1202 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1213 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." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1206 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1217 msgid "" "In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " "property in the Inspector. Select \"New Shortcut\" and click on the " @@ -4424,26 +4429,26 @@ msgid "" "event associated with the spacebar." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1214 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1225 msgid "" "Now when the start button appears, you can either click it or press the " "spacebar to start the game." msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1218 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1229 #, fuzzy msgid "Project files" msgstr "專案管理員" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/:1 msgid "You can find a completed version of this project at these locations:" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1221 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 msgid "https://github.com/kidscancode/Godot3_dodge/releases" msgstr "" -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1222 +#: ../../docs/getting_started/step_by_step/your_first_game.rst:1233 msgid "https://github.com/godotengine/godot-demo-projects" msgstr "" @@ -4520,7 +4525,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 -#: ../../docs/development/compiling/compiling_with_mono.rst:148 +#: ../../docs/development/compiling/compiling_with_mono.rst:147 msgid "Export templates" msgstr "" @@ -4944,9 +4949,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 msgid "" "Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include NVIDIA PhysX, Google " -"AdMob, or an FBX model importer. Any of these can come as third-party " -"plugins instead." +"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " +"of these can come as third-party plugins instead." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 @@ -7708,7 +7712,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/splash_screen.rst:21 #: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:32 +#: ../../docs/tutorials/3d/gi_probes.rst:36 #: ../../docs/tutorials/3d/baked_lightmaps.rst:40 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 #: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 @@ -8793,223 +8797,223 @@ msgid "" "the world of Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:14 +#: ../../docs/getting_started/editor/unity_to_godot.rst:15 +msgid "" +"This article talks about older versions of Unity. Nestable prefabs ('Nested " +"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " +"Godot's scenes, and allow a more Godot-like approach to scene organisation." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:18 msgid "Differences" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Unity" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:17 +#: ../../docs/getting_started/editor/unity_to_godot.rst:21 msgid "Godot" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 #: ../../docs/community/contributing/documentation_guidelines.rst:115 msgid "License" msgstr "授權" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "" "Proprietary, closed, free license with revenue caps and usage restrictions" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:19 +#: ../../docs/getting_started/editor/unity_to_godot.rst:23 msgid "MIT license, free and fully open source without any restriction" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "OS (editor)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, Linux (unofficial and unsupported)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 +#: ../../docs/getting_started/editor/unity_to_godot.rst:25 msgid "Windows, macOS, X11 (Linux, \\*BSD)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "OS (export)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, Linux" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly or asm.js" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "" "**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " "HoloLens" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 +#: ../../docs/getting_started/editor/unity_to_godot.rst:32 msgid "**TV:** Android TV, Samsung SMART TV, tvOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 +#: ../../docs/getting_started/editor/unity_to_godot.rst:27 msgid "**Desktop:** Windows, macOS, X11" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:24 +#: ../../docs/getting_started/editor/unity_to_godot.rst:28 msgid "**Mobile:** Android, iOS" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 +#: ../../docs/getting_started/editor/unity_to_godot.rst:29 msgid "**Web:** WebAssembly" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:26 +#: ../../docs/getting_started/editor/unity_to_godot.rst:30 msgid "**Console:** See :ref:`doc_consoles`" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 +#: ../../docs/getting_started/editor/unity_to_godot.rst:31 msgid "**VR:** Oculus Rift, SteamVR" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "Component/Scene (GameObject > Component)" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 +#: ../../docs/getting_started/editor/unity_to_godot.rst:35 msgid "Prefabs" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 +#: ../../docs/getting_started/editor/unity_to_godot.rst:34 msgid "" ":ref:`Scene tree and nodes `, allowing scenes to be " "nested and/or inherit other scenes" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Third-party tools" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid "Visual Studio or VS Code" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:33 +#: ../../docs/getting_started/editor/unity_to_godot.rst:37 msgid ":ref:`External editors are possible `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 +#: ../../docs/getting_started/editor/unity_to_godot.rst:38 msgid ":ref:`Android SDK for Android export `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 -msgid "Killer features" +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 +msgid "Notable advantages" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Huge community" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid "Large assets store" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:36 +#: ../../docs/getting_started/editor/unity_to_godot.rst:40 msgid "Scene System" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 +#: ../../docs/getting_started/editor/unity_to_godot.rst:41 msgid ":ref:`Animation Pipeline `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 +#: ../../docs/getting_started/editor/unity_to_godot.rst:42 msgid ":ref:`Easy to write Shaders `" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:39 +#: ../../docs/getting_started/editor/unity_to_godot.rst:43 msgid "Debug on Device" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:46 +#: ../../docs/getting_started/editor/unity_to_godot.rst:50 msgid "The editor" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:48 +#: ../../docs/getting_started/editor/unity_to_godot.rst:52 msgid "" "Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display both editors with colored blocks to " -"indicate common functionalities." +"games. The pictures below display the default layouts of both editors with " +"colored blocks to indicate common functionalities." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:55 -msgid "" -"Note that Godot editor allows you to dock each panel at the side of the " -"scene editor you wish." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:57 +#: ../../docs/getting_started/editor/unity_to_godot.rst:58 msgid "" "While both editors may seem similar, there are many differences below the " "surface. Both let you organize the project using the filesystem, but Godot's " "approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. All this contributes to Godot being much friendlier " -"to VCS systems, such as Git, Subversion, or Mercurial." +"format, and no metadata. This makes Godot more friendly to VCS systems, such " +"as Git, Subversion, or Mercurial." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:62 +#: ../../docs/getting_started/editor/unity_to_godot.rst:63 msgid "" "Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " "has a specific function, the approach used by Godot is more visually " -"descriptive. In other words, it's easier to understand what a specific scene " -"does at a glance." +"descriptive. It's easier to understand what a scene does at a glance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:66 +#: ../../docs/getting_started/editor/unity_to_godot.rst:67 msgid "" -"The Inspector in Godot is more minimalist and designed to only show " -"properties. Thanks to this, objects can export a much larger amount of " -"useful parameters to the user without having to hide functionality in " -"language APIs. As a plus, Godot allows animating any of those properties " -"visually, so changing colors, textures, enumerations, or even links to " -"resources in real-time is possible without involving code." +"The Inspector in Godot is more minimal, it shows only properties. Thanks to " +"this, objects can expose more useful parameters to the user without having " +"to hide functionality in language APIs. As a plus, Godot allows animating " +"any of those properties visually. Changing colors, textures, enumerations, " +"or even links to resources in real-time is possible without needing to write " +"code." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:71 +#: ../../docs/getting_started/editor/unity_to_godot.rst:72 msgid "" -"Finally, the Toolbar at the top of the screen is similar in the sense that " -"it allows controlling the project playback, but projects in Godot run in a " -"separate window, as they don't execute inside the editor (but the tree and " -"objects can still be explored in the debugger window)." +"The Toolbar at the top of the screen is similar in both editors, offering " +"control over project playback. Projects in Godot run in a separate window, " +"rather than inside the editor (but the tree and objects can still be " +"explored in the debugger window)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:75 +#: ../../docs/getting_started/editor/unity_to_godot.rst:76 msgid "" -"This approach has the disadvantage that the running game can't be explored " -"from different angles (though this may be supported in the future and " -"displaying collision gizmos in the running game is already possible), but in " -"exchange has several advantages:" +"This approach has the disadvantage that in Godot the running game can't be " +"explored from different angles (though this may be supported in the future " +"and displaying collision gizmos in the running game is already possible), " +"but in exchange has several advantages:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:79 +#: ../../docs/getting_started/editor/unity_to_godot.rst:80 msgid "" "Running the project and closing it is fast (Unity has to save, run the " "project, close the project, and then reload the previous state)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 +#: ../../docs/getting_started/editor/unity_to_godot.rst:81 msgid "" "Live editing is a lot more useful because changes done to the editor take " "effect immediately in the game and are not lost (nor have to be synced) when " @@ -9017,65 +9021,66 @@ msgid "" "while you play them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 +#: ../../docs/getting_started/editor/unity_to_godot.rst:82 msgid "The editor is more stable because the game runs in a separate process." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:83 +#: ../../docs/getting_started/editor/unity_to_godot.rst:84 msgid "" -"Finally, the top toolbar includes a menu for remote debugging. These options " -"make it simple to deploy to a device (connected phone, tablet, or browser " -"via HTML5), and debug/live edit on it after the game was exported." +"Finally, Godot's top toolbar includes a menu for remote debugging. These " +"options allow deployment to a device (connected phone, tablet, or browser " +"via HTML5), and debugging/live editing on it after the game is exported." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:88 +#: ../../docs/getting_started/editor/unity_to_godot.rst:89 msgid "The scene system" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:90 +#: ../../docs/getting_started/editor/unity_to_godot.rst:91 msgid "" -"This is the most important difference between Unity and Godot and, actually, " -"the favourite feature of most Godot users." +"This is the most important difference between Unity and Godot and the " +"favourite feature of most Godot users." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:92 +#: ../../docs/getting_started/editor/unity_to_godot.rst:93 msgid "" -"Unity's scene system consists of embedding all the required assets in a " -"scene and linking them together by setting components and scripts to them." +"Working on a 'level' in Unity usually means embedding all the required " +"assets in a scene and linking them together with components and scripts." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:95 +#: ../../docs/getting_started/editor/unity_to_godot.rst:96 msgid "" -"Godot's scene system is different: it actually consists of a tree made of " -"nodes. Each node serves a purpose: Sprite, Mesh, Light, etc. Basically, this " -"is similar to the Unity scene system. However, each node can have multiple " -"children, which makes each a subscene of the main scene. This means you can " -"compose a whole scene with different scenes stored in different files." +"Godot's scene system is superficially similar to Unity. A 'level' consists " +"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " +"etc. However, in Godot the nodes are arranged in a tree. Each node can have " +"multiple children, which makes each a subscene of the main scene. This means " +"you can compose a whole scene with different scenes stored in different " +"files." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:100 +#: ../../docs/getting_started/editor/unity_to_godot.rst:99 msgid "" "For example, think of a platformer level. You would compose it with multiple " "elements:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 +#: ../../docs/getting_started/editor/unity_to_godot.rst:101 msgid "Bricks" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 +#: ../../docs/getting_started/editor/unity_to_godot.rst:102 msgid "Coins" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 +#: ../../docs/getting_started/editor/unity_to_godot.rst:103 msgid "The player" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:105 +#: ../../docs/getting_started/editor/unity_to_godot.rst:104 msgid "The enemies" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:108 +#: ../../docs/getting_started/editor/unity_to_godot.rst:106 msgid "" "In Unity, you would put all the GameObjects in the scene: the player, " "multiple instances of enemies, bricks everywhere to form the ground of the " @@ -9085,59 +9090,61 @@ msgid "" "scene so that they can collide. This principle is different in Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +#: ../../docs/getting_started/editor/unity_to_godot.rst:111 msgid "" -"In Godot, you would split your whole scene into 3 separate, smaller scenes, " -"which you would then instance in the main scene." +"In Godot, you would split your whole scene into three separate, smaller " +"scenes, and instance them in the main scene." +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:113 +msgid "**A scene for the Player alone.**" msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "**First, a scene for the Player alone.**" +msgid "" +"Consider the player as an element we'd like to use in different parent " +"scenes (for instance 'level' scenes). In our case, the player element needs " +"at least an AnimatedSprite node. This node contains the sprite textures " +"necessary for various animations (for example, a walking animation)." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:117 +msgid "**A scene for the Enemy.**" +msgstr "" + +#: ../../docs/getting_started/editor/unity_to_godot.rst:119 msgid "" -"Consider the player as a reusable element in other levels. It is composed of " -"one node in particular: an AnimatedSprite node, which contains the sprite " -"textures to form various animations (for example, walking animation)" +"An enemy is also an element we'd like to use in several scenes. It's almost " +"the same as the Player node. The only differences are the script (it needs " +"'AI' routines to generate the enemy's behaviour) and the sprite textures " +"used by the AnimatedSprite node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:120 -msgid "**Second, a scene for the Enemy.**" +#: ../../docs/getting_started/editor/unity_to_godot.rst:123 +msgid "**A Level scene.**" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:122 +#: ../../docs/getting_started/editor/unity_to_godot.rst:125 msgid "" -"There again, an enemy is a reusable element in other levels. It is almost " -"the same as the Player node - the only differences are the script (that " -"manages AI, mostly) and sprite textures used by the AnimatedSprite." +"A Level scene is composed of Bricks (for platforms), Coins (for the player " +"to collect) and a number of instances of the Enemy scene. Each instance is a " +"node in the Level scene tree. These instances are separate enemies, which " +"initially have shared behaviour and appearance as defined in the Enemy " +"scene. You can set different properties for each Enemy node (to change its " +"color, for example)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:126 -msgid "**Lastly, the Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:128 +#: ../../docs/getting_started/editor/unity_to_godot.rst:129 msgid "" -"It is composed of Bricks (for platforms), Coins (for the player to grab) and " -"a certain number of instances of the previous Enemy scene. These will be " -"different, separate enemies, whose behaviour and appearance will be the same " -"as defined in the Enemy scene. Each instance is then considered as a node in " -"the Level scene tree. Of course, you can set different properties for each " -"Enemy node (to change its color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:134 -msgid "" -"Finally, the main scene would then be composed of one root node with 2 " -"children: a Player instance node, and a Level instance node. The root node " +"4. **A Main scene.** The Main scene would be composed of one root node with " +"2 children: a Player instance node, and a Level instance node. The root node " "can be anything, generally a \"root\" type such as \"Node\" which is the " "most global type, or \"Node2D\" (root type of all 2D-related nodes), " "\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " "all GUI-related nodes)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 +#: ../../docs/getting_started/editor/unity_to_godot.rst:135 msgid "" "As you can see, every scene is organized as a tree. The same goes for nodes' " "properties: you don't *add* a collision component to a node to make it " @@ -9147,142 +9154,133 @@ msgid "" "introduction `)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:145 +#: ../../docs/getting_started/editor/unity_to_godot.rst:140 msgid "" -"Question: What are the advantages of this system? Wouldn't this system " -"potentially increase the depth of the scene tree? Besides, Unity allows " -"organizing GameObjects by putting them in empty GameObjects." +"What are the advantages of this system? Wouldn't this system potentially " +"increase the depth of the scene tree? And doesn't Unity already allow you to " +"organize GameObjects by putting them inside empty GameObjects?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:147 +#: ../../docs/getting_started/editor/unity_to_godot.rst:142 msgid "" -"First, this system is closer to the well-known object-oriented paradigm: " -"Godot provides a number of nodes which are not clearly \"Game Objects\", but " -"they provide their children with their own capabilities: this is inheritance." +"Godot's system is closer to the well-known object-oriented paradigm: Godot " +"provides a number of nodes which are not clearly \"Game Objects\", but they " +"provide their children with their own capabilities: this is inheritance." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:148 +#: ../../docs/getting_started/editor/unity_to_godot.rst:143 msgid "" -"Second, it allows the extraction of a subtree of the scene to make it a " -"scene of its own, which answers the second and third questions: even if a " -"scene tree gets too deep, it can be split into smaller subtrees. This also " -"allows a better solution for reusability, as you can include any subtree as " -"a child of any node. Putting multiple nodes in an empty GameObject in Unity " -"does not provide the same possibility, apart from a visual organization." +"Godot allows the extraction of a subtree of a scene to make it a scene of " +"its own. So if a scene tree gets too deep, it can be split into smaller " +"subtrees. This is better for reusability, as you can include any subtree as " +"a child of any node. Putting multiple GameObjects in an empty GameObject in " +"Unity does not provide the same functionality." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:151 -msgid "" -"These are the most important concepts you need to remember: \"node\", " -"\"parent node\", and \"child node\"." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:155 +#: ../../docs/getting_started/editor/unity_to_godot.rst:146 #: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 msgid "Project organization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:159 +#: ../../docs/getting_started/editor/unity_to_godot.rst:150 msgid "" -"We previously observed that there is no perfect solution to set a project " -"architecture. Any solution will work for Unity and Godot, so this point has " -"a lesser importance." +"There is no perfect project architecture. Any architecture can be made to " +"work in either Unity and Godot." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:162 +#: ../../docs/getting_started/editor/unity_to_godot.rst:153 msgid "" -"However, we often observe a common architecture for Unity projects, which " -"consists of having one Assets folder in the root directory that contains " -"various folders, one per type of asset: Audio, Graphics, Models, Materials, " -"Scripts, Scenes, etc." +"However, a common architecture for Unity projects is to have one Assets " +"folder in the root directory that contains various folders, one per type of " +"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:165 +#: ../../docs/getting_started/editor/unity_to_godot.rst:156 msgid "" -"As described before, the Godot scene system allows splitting scenes into " -"smaller scenes. Since each scene and subscene is actually one scene file in " -"the project, we recommend organizing your project a bit differently. This " -"wiki provides a page for this: :ref:`doc_project_organization`." +"Since Godot allows splitting scenes into smaller scenes, each scene and " +"subscene existing as a file in the project, we recommend organizing your " +"project a bit differently. This wiki provides a page for this: :ref:" +"`doc_project_organization`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:171 +#: ../../docs/getting_started/editor/unity_to_godot.rst:161 msgid "Where are my prefabs?" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:173 +#: ../../docs/getting_started/editor/unity_to_godot.rst:163 msgid "" -"The concept of prefabs as provided by Unity is a 'template' element of the " -"scene. It is reusable, and each instance of the prefab that exists in the " -"scene has an existence of its own, but all of them have the same properties " -"as defined by the prefab." +"A prefab as provided by Unity is a 'template' element of the scene. It is " +"reusable, and each instance of the prefab that exists in the scene has an " +"existence of its own, but all of them have the same properties as defined by " +"the prefab." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:177 +#: ../../docs/getting_started/editor/unity_to_godot.rst:167 msgid "" -"Godot does not provide prefabs as such, but this functionality is here, " -"again, filled thanks to its scene system: As we saw, the scene system is " -"organized as a tree. Godot allows you to save a subtree of a scene as its " -"own scene, thus saved into its own file. This new scene can then be " -"instanced as many times as you want. Any change you make to this new, " -"separate scene will be applied to its instances. However, any change you " -"make to the instance will not have any impact on the 'template' scene." +"Godot does not provide prefabs as such, but the same functionality is " +"provided by its scene system: The scene system is organized as a tree. Godot " +"allows you to save any subtree of a scene as a scene file. This new scene " +"can then be instanced as many times as you want, as a child of any node. Any " +"change you make to this new, separate scene will be applied to its " +"instances. However, any change you make to the instance will not have any " +"impact on the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:185 +#: ../../docs/getting_started/editor/unity_to_godot.rst:174 msgid "" -"To be precise, you can modify the parameters of the instance in the " -"Inspector panel. However, the nodes that compose this instance are locked " -"although you can unlock them if you need to by right-clicking the instance " -"in the Scene tree and selecting \"Editable children\" in the menu. You don't " -"need to do this to add new children nodes to this node, but it is possible. " -"Remember that these new children will belong to the instance, not the " -"'template' scene. If you want to add new children to all the instances of " -"your 'template' scene, then you need to add them in the 'template' scene." +"To be precise, you can modify the parameters of an instance in the Inspector " +"panel. The nodes that compose this instance are initially locked. You can " +"unlock them if you need to by right-clicking the instance in the Scene tree " +"and selecting \"Editable children\" in the menu. You don't need to do this " +"to add *new* child nodes to this node. Remember that any new children will " +"belong to the instance, not to the 'template' scene on disk. If you want to " +"add new children to every instance of your 'template' scene, then you should " +"add them in the 'template' scene." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 +#: ../../docs/getting_started/editor/unity_to_godot.rst:184 msgid "Glossary correspondence" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 +#: ../../docs/getting_started/editor/unity_to_godot.rst:186 msgid "GameObject -> Node" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:198 +#: ../../docs/getting_started/editor/unity_to_godot.rst:187 msgid "Add a component -> Inheriting" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "Prefab -> Externalized branch" +#: ../../docs/getting_started/editor/unity_to_godot.rst:188 +msgid "Prefab -> Reusable Scene file" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:203 +#: ../../docs/getting_started/editor/unity_to_godot.rst:192 msgid "Scripting: GDScript, C# and Visual Script" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:206 +#: ../../docs/getting_started/editor/unity_to_godot.rst:195 msgid "Design" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:208 +#: ../../docs/getting_started/editor/unity_to_godot.rst:197 msgid "" -"As you may know already, Unity supports C#. C# benefits from its integration " -"with Visual Studio and other features, such as static typing." +"Unity supports C#. C# benefits from its integration with Visual Studio and " +"has desirable features such as static typing." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:210 +#: ../../docs/getting_started/editor/unity_to_godot.rst:199 msgid "" "Godot provides its own scripting language, :ref:`GDScript ` " "as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " "from Python, but is not related to it. If you wonder about the reasoning for " "a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and is " -"really easy to learn: Between one evening for an experienced programmer and " -"a week for a complete beginner." +"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " +"take long to learn: Between one evening for an experienced programmer and a " +"week for a complete beginner." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 +#: ../../docs/getting_started/editor/unity_to_godot.rst:205 msgid "" "Unity allows you to attach as many scripts as you want to a GameObject. Each " "script adds a behaviour to the GameObject: For example, you can attach a " @@ -9290,7 +9288,7 @@ msgid "" "its specific game logic." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:220 +#: ../../docs/getting_started/editor/unity_to_godot.rst:209 msgid "" "In Godot, you can only attach one script per node. You can use either an " "external GDScript file or include the script directly in the node. If you " @@ -9298,30 +9296,29 @@ msgid "" "solutions, depending on your scene and on what you want to achieve:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:224 +#: ../../docs/getting_started/editor/unity_to_godot.rst:213 msgid "" "either add a new node between your target node and its current parent, then " "add a script to this new node." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:225 +#: ../../docs/getting_started/editor/unity_to_godot.rst:214 msgid "" "or, you can split your target node into multiple children and attach one " "script to each of them." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:227 +#: ../../docs/getting_started/editor/unity_to_godot.rst:216 msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. This is why " -"it is important to have a real reflection and consider splitting a " -"complicated scene into multiple, smaller branches." +"As you can see, it can be easy to turn a scene tree to a mess. Consider " +"splitting any complicated scene into multiple, smaller branches." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 +#: ../../docs/getting_started/editor/unity_to_godot.rst:219 msgid "Connections: groups and signals" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 +#: ../../docs/getting_started/editor/unity_to_godot.rst:221 msgid "" "You can control nodes by accessing them via script and calling built-in or " "user-defined functions on them. You can also place nodes in a group and call " @@ -9329,7 +9326,7 @@ msgid "" "documentation `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 +#: ../../docs/getting_started/editor/unity_to_godot.rst:226 msgid "" "Nodes can send a signal when a specified action occurs. A signal can be set " "to call any function. You can define custom signals and specify when they " @@ -9337,27 +9334,27 @@ msgid "" "`." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 +#: ../../docs/getting_started/editor/unity_to_godot.rst:231 msgid "Script serialization" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:245 +#: ../../docs/getting_started/editor/unity_to_godot.rst:233 msgid "Unity can handle script serialization in two ways:" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:247 +#: ../../docs/getting_started/editor/unity_to_godot.rst:235 msgid "" "Implicit: All public fields in a class are automatically serialized if the " "type is a serializable type (``Dictionary`` is not serializable)." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 +#: ../../docs/getting_started/editor/unity_to_godot.rst:236 msgid "" "Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " "attribute." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 +#: ../../docs/getting_started/editor/unity_to_godot.rst:238 msgid "" "Godot also has a built-in script serialization system, but it works only " "explicitly. You can serialize any serializable type (:ref:`built-in and " @@ -9366,7 +9363,7 @@ msgid "" "the :ref:`exports documentation ` for details." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:255 +#: ../../docs/getting_started/editor/unity_to_godot.rst:243 msgid "" "Unity also has a data type called ``ScriptableObject`` used to serialize " "custom asset objects. Its equivalent in Godot is the base class for all " @@ -9375,11 +9372,11 @@ msgid "" "information about resources can be found :ref:`here `." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:260 +#: ../../docs/getting_started/editor/unity_to_godot.rst:248 msgid "Using Godot in C++" msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:262 +#: ../../docs/getting_started/editor/unity_to_godot.rst:250 msgid "" "Godot allows you to develop your project directly in C++ by using its API, " "which is not possible with Unity at the moment. As an example, you can " @@ -9387,7 +9384,7 @@ msgid "" "API." msgstr "" -#: ../../docs/getting_started/editor/unity_to_godot.rst:265 +#: ../../docs/getting_started/editor/unity_to_godot.rst:253 msgid "" "If you are interested in using Godot in C++, you may want to start reading " "the :ref:`Developing in C++ ` page." @@ -11483,11 +11480,18 @@ msgid "" "top of the file:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1447 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1446 +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:1452 msgid "Memory management" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1449 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1454 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 " @@ -11498,67 +11502,129 @@ msgid "" "weak references." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1457 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1462 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:1466 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1471 msgid "" -"Signals are a way to send notification messages from an object that other " -"objects can listen to in a generic way. Create custom signals for a class " -"using the ``signal`` keyword." +"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:1478 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1483 msgid "" -"These signals may be connected to methods in the same manner as you connect " -"built-in signals of nodes such as :ref:`class_Button` or :ref:" -"`class_RigidBody`." +"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:1481 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1490 msgid "" -"Here's an example that creates a custom signal in one script and connects " -"the custom signal to a method in a separate script, using the :ref:`Object." -"connect() ` method:" +"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:1493 +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:1508 +msgid "You can emit as many arguments as you want along with a signal." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 msgid "" -"GDScript can bind arguments to connections between a signal and a method. " -"When the signal is emitted, calling the connected method, the bound argument " -"is given to the method. These bound arguments are specific to the connection " -"rather than the signal or the method, meaning that each connection has " -"unique bindings." +"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:1516 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1514 msgid "" -"Here is an example that creates a connection between a button's ``pressed`` " -"signal and a method, binding the button instance to the connection. The " -"handler uses the bound argument to print which button instance was pressed." +"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:1531 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1556 msgid "" -"Signals are generated by the :ref:`Object.emit_signal() " -"` method which broadcasts the signal and " -"arguments." +"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:1534 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1559 msgid "" -"Extending a previous example to use all the features of GDScript signals:" +"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:1566 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1573 +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:1576 +msgid "" +"you can write optional argument names in parentheses after the signal's " +"definition." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1584 +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. So it's up to you to emit the correct " +"values." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 +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:1594 +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:1598 +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:1614 +msgid "" +"Our ``BattleLog`` node receives each element in the binds array as an extra " +"argument:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1628 msgid "Coroutines with yield" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1568 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1630 msgid "" "GDScript offers support for `coroutines `_ via the ``yield`` built-in function. Calling ``yield()`` will " @@ -11568,43 +11634,43 @@ msgid "" "returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1590 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1614 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1652 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1676 msgid "Will print:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1598 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1660 msgid "" "It is also possible to pass values between yield() and resume(), for example:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1623 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1685 msgid "Coroutines & signals" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1625 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1687 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:1640 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1702 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:1653 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1715 msgid "" "``my_func`` will only continue execution once both buttons have been pressed." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1656 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1718 msgid "Onready keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1658 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1720 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 " @@ -11612,7 +11678,7 @@ msgid "" "call to Node._ready() is made." msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1670 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1732 msgid "" "This can get a little cumbersome, especially when nodes and external " "references pile up. For this, GDScript has the ``onready`` keyword, that " @@ -11620,11 +11686,11 @@ msgid "" "replace the above code with a single line:" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1680 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1742 msgid "Assert keyword" msgstr "" -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1682 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1744 msgid "" "The ``assert`` keyword can be used to check conditions in debug builds. " "These assertions are ignored in non-debug builds." @@ -12136,7 +12202,7 @@ msgid "**NEVER**:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:194 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 msgid "Naming conventions" msgstr "" @@ -14223,7 +14289,7 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 #: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:71 +#: ../../docs/tutorials/misc/pausing_games.rst:80 msgid "Example" msgstr "" @@ -15055,10 +15121,9 @@ msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 msgid "" -"Currently, Godot uses C# version 6.0 in its engine and example source code. " -"So, before we move to a newer version, care must be taken to avoid mixing " -"language features only available in C# 7.0 or later, such as pattern " -"matching or expression-bodied members inside get/set accessors." +"Godot currently uses **C# version 7.0** in its engine and example source " +"code. So, before we move to a newer version, care must be taken to avoid " +"mixing language features only available in C# 7.1 or later." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 @@ -15073,273 +15138,270 @@ msgid "Formatting conventions" msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "" -"If you create a new file, make sure that it uses linefeed (*LF*) characters " -"to break lines, not *CRLF* or *CR*." +msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 msgid "" -"Use UTF-8 encoding without a byte order mark (BOM )." +"Use **UTF-8** encoding without a `byte order mark `_." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 msgid "" -"Use 4 spaces instead of tabs for indentation (which is referred to as 'soft " -"tabs')." +"Use **4 spaces** instead of tabs for indentation (which is referred to as " +"\"soft tabs\")." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:38 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 +msgid "" +"Consider breaking a line into several if it's longer than 100 characters." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 msgid "Line breaks and blank lines" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:40 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 msgid "" -"For a general indentation rule, follow `The 'Allman Style' `_ which recommends " "placing the brace associated with a control statement on the next line, " "indented to the same level:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:57 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 msgid "However, you may choose to omit line breaks inside brackets:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:59 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 msgid "For simple property accessors." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 msgid "For simple object, array, or collection initializers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 msgid "For abstract auto property, indexer, or event declarations." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:83 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 msgid "Insert a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:85 -msgid "After *using* statement list." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "Between method, properties, and inner type declarations." +msgid "After a list of ``using`` statements." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 +msgid "Between method, properties, and inner type declarations." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 msgid "At the end of each file." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:89 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 msgid "" "Field and constant declarations can be grouped together according to " "relevance. In that case, consider inserting a blank line between the groups " "for easier reading." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:92 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 msgid "Avoid inserting a blank line:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:94 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 msgid "After ``{``, the opening brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 msgid "Before ``}``, the closing brace." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "After a comment block, or a single line comment." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +msgid "After a comment block or a single-line comment." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 msgid "Adjacent to another blank line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:134 -msgid "Consider breaking a line when it's longer than 100 characters." -msgstr "" - #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Ensure that all lines use the Unix LF format, not CRLF." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:139 msgid "Using spaces" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 msgid "Insert a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 msgid "Around a binary and tertiary operator." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 msgid "" -"Between an opening parenthesis and *if*, *for*, *foreach*, *catch*, *while*, " -"*lock* or *using* keywords." +"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " +"``while``, ``lock`` or ``using`` keywords." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 msgid "Before and within a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 msgid "Between accessors in a single line accessor block." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 msgid "After a comma." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "After a semi-colon in a *for* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 +msgid "After a semicolon in a ``for`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "After a colon in a single line *case* statement." +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 +msgid "After a colon in a single line ``case`` statement." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:150 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 msgid "Around a colon in a type declaration." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 msgid "Around a lambda arrow." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:152 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 msgid "" -"After a single line comment symbol ('//'), and before it if used at the end " -"of a line." +"After a single-line comment symbol (``//``), and before it if used at the " +"end of a line." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 msgid "Do not use a space:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 msgid "After type cast parentheses." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:157 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 msgid "Within single line initializer braces." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 msgid "" "The following example shows a proper use of spaces, according to some of the " "above mentioned conventions:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:196 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 msgid "" -"Use *PascalCase* for all namespaces, type names and member level identifiers " -"(i.e. methods, properties, constants, events), except for private fields:" +"Use **PascalCase** for all namespaces, type names and member level " +"identifiers (i.e. methods, properties, constants, events), except for " +"private fields:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:217 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 msgid "" -"Use *camelCase* for all other identifiers (i.e. local variables, method " -"arguments), and use underscore('_') as a prefix for private fields (but not " -"for methods or properties, as explained above):" +"Use **camelCase** for all other identifiers (i.e. local variables, method " +"arguments), and use an underscore (``_``) as a prefix for private fields " +"(but not for methods or properties, as explained above):" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 +msgid "" +"There's an exception with acronyms which consist of two letters, like " +"``UI``, which should be written in uppercase letters where PascalCase would " +"be expected, and in lowercase letters otherwise." msgstr "" #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 msgid "" -"There's an exception with acronyms which consist of two letters, like " -"*'UI'*, which should be written in uppercase letters when used where Pascal " -"case would be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:234 -msgid "" -"Note that *'id'* is **not** an acronym, so it should be treated as a normal " +"Note that ``id`` is **not** an acronym, so it should be treated as a normal " "identifier:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:245 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 msgid "" "It is generally discouraged to use a type name as a prefix of an identifier, " -"like *'string strText'* or *'float fPower'*, for example. An exception is " +"like ``string strText`` or ``float fPower``, for example. An exception is " "made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter *'I'* prefixed to their names, like *'IInventoryHolder'* or " -"*'IDamageable'*." +"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " +"``IDamageable``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 msgid "" "Lastly, consider choosing descriptive names and do not try to shorten them " "too much if it affects readability." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:252 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 msgid "" "For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer" +"with a weapon, prefer:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:258 -msgid "Rather than," +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 +msgid "Rather than:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:265 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 msgid "Implicitly typed local variables" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:267 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 msgid "" -"Consider using implicitly typing (*'var'*) for declaration of a local " +"Consider using implicitly typing (``var``) for declaration of a local " "variable, but do so **only when the type is evident** from the right side of " "the assignment:" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 msgid "Other considerations" msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:299 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 msgid "Use explicit access modifiers." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 msgid "Use properties instead of non-private fields." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 msgid "" -"Use modifiers in this order: *'public/protected/private/internal virtual/" -"override/abstract/new static readonly'*." +"Use modifiers in this order: ``public``/``protected``/``private``/" +"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" +"``readonly``." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 msgid "" -"Avoid using fully qualified names or *'this.'* prefix for members when it's " +"Avoid using fully-qualified names or ``this.`` prefix for members when it's " "not necessary." msgstr "" +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 +msgid "Remove unused ``using`` statements and unnecessary parentheses." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 +msgid "Consider omitting the default initial value for a type." +msgstr "" + #: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "Remove unused *'using'* statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "Consider omitting default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:305 msgid "" "Consider using null-conditional operators or type initializers to make the " "code more compact." msgstr "" -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:306 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 msgid "" "Use safe cast when there is a possibility of the value being a different " "type, and use direct cast otherwise." @@ -18310,91 +18372,97 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 +msgid "" +"Avoid using spaces when you choose your **exported_xcode_project_name** as " +"this can lead to corruption in your XCode project file." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 msgid "When the export completes, the output folder should look like this:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:46 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 msgid "" "Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " "like any other iOS app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:50 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 msgid "Active development considerations" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:52 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 msgid "" "The above method creates an exported project that you can build for release, " "but you have to re-export every time you make a change in Godot." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 msgid "" "While developing, you can speed this process up by linking your Godot " "project files directly into your app." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 msgid "In the following example:" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:60 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 msgid "" "**exported_xcode_project_name** is the name of the exported iOS application " "(as above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 msgid "**godot_project_to_export** is the name of the Godot project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 msgid "Steps to link a Godot project folder to Xcode" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 msgid "Start from an exported iOS project (follow the steps above)." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 msgid "In Finder, drag the Godot project folder into the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:71 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 msgid "" "3. In the dialog, make sure **Create folder references** is selected. This " "means you will be able to continue to edit your Godot project in its current " "location." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:76 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 msgid "See the **godot_project_to_export** folder in the Xcode file browser." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:77 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:81 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 msgid "" "6. Open **exported_xcode_project_name-Info.plist** and add a string property " "named **godot_path** (this is the real key name) with a value " "**godot_project_to_export** (this is the name of your project)" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:87 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 msgid "" "That's it! You can now edit your project in the Godot editor and build it in " "Xcode when you want to run it on a device." msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:91 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 #: ../../docs/tutorials/platform/services_for_ios.rst:4 msgid "Services for iOS" msgstr "" -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:93 +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 msgid "" "Special iOS services can be used in Godot. Check out the :ref:" "`doc_services_for_ios` page." @@ -25634,18 +25702,34 @@ msgid "Clearcoat" msgstr "" #: ../../docs/tutorials/3d/spatial_material.rst:357 +#: ../../docs/tutorials/3d/spatial_material.rst:366 +#: ../../docs/tutorials/3d/spatial_material.rst:388 +#: ../../docs/tutorials/3d/spatial_material.rst:401 +#: ../../docs/tutorials/3d/spatial_material.rst:421 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:153 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:195 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:221 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:266 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:280 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:299 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:352 +msgid "*This feature is only available when using the GLES3 backend.*" +msgstr "" + +#: ../../docs/tutorials/3d/spatial_material.rst:359 msgid "" "The *Clearcoat* parameter is used to add a secondary pass of transparent " "coat to the material. This is common in car paint and toys. In practice, " "it's a smaller specular blob added on top of the existing material." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:362 +#: ../../docs/tutorials/3d/spatial_material.rst:364 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:60 msgid "Anisotropy" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:364 +#: ../../docs/tutorials/3d/spatial_material.rst:368 msgid "" "This changes the shape of the specular blob and aligns it to tangent space. " "Anisotropy is commonly used with hair, or to make materials such as brushed " @@ -25653,11 +25737,11 @@ msgid "" "flowmaps." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:371 +#: ../../docs/tutorials/3d/spatial_material.rst:375 msgid "Ambient Occlusion" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:373 +#: ../../docs/tutorials/3d/spatial_material.rst:377 msgid "" "It is possible to specify a baked ambient occlusion map. This map affects " "how much ambient light reaches each surface of the object (it does not " @@ -25667,11 +25751,11 @@ msgid "" "whenever possible." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:382 +#: ../../docs/tutorials/3d/spatial_material.rst:386 msgid "Depth" msgstr "深度" -#: ../../docs/tutorials/3d/spatial_material.rst:384 +#: ../../docs/tutorials/3d/spatial_material.rst:390 msgid "" "Setting a depth map on a material produces a ray-marched search to emulate " "the proper displacement of cavities along the view direction. This is not " @@ -25680,34 +25764,34 @@ msgid "" "results, *Depth* should be used together with normal mapping." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:393 +#: ../../docs/tutorials/3d/spatial_material.rst:399 msgid "Subsurface Scattering" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:395 +#: ../../docs/tutorials/3d/spatial_material.rst:403 msgid "" "This effect emulates light that penetrates an object's surface, is " "scattered, and then comes out. It is useful to create realistic skin, " "marble, colored liquids, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:402 +#: ../../docs/tutorials/3d/spatial_material.rst:410 msgid "Transmission" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:404 +#: ../../docs/tutorials/3d/spatial_material.rst:412 msgid "" "This controls how much light from the lit side (visible to light) is " "transferred to the dark side (opposite from the light). This works well for " "thin objects such as plant leaves, grass, human ears, etc." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:411 +#: ../../docs/tutorials/3d/spatial_material.rst:419 #: ../../docs/tutorials/misc/gles2_gles3_differences.rst:58 msgid "Refraction" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:413 +#: ../../docs/tutorials/3d/spatial_material.rst:423 msgid "" "When refraction is enabled, it supersedes alpha blending, and Godot attempts " "to fetch information from behind the object being rendered instead. This " @@ -25715,33 +25799,33 @@ msgid "" "life." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:420 +#: ../../docs/tutorials/3d/spatial_material.rst:430 msgid "Detail" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:422 +#: ../../docs/tutorials/3d/spatial_material.rst:432 msgid "" "Godot allows using secondary albedo and normal maps to generate a detail " "texture, which can be blended in many ways. By combining this with secondary " "UV or triplanar modes, many interesting textures can be achieved." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:429 +#: ../../docs/tutorials/3d/spatial_material.rst:439 msgid "UV1 and UV2" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:431 +#: ../../docs/tutorials/3d/spatial_material.rst:441 msgid "" "Godot supports two UV channels per material. Secondary UV is often useful " "for ambient occlusion or emission (baked light). UVs can be scaled and " "offset, which is useful when using repeating textures." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:436 +#: ../../docs/tutorials/3d/spatial_material.rst:446 msgid "Triplanar Mapping" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:438 +#: ../../docs/tutorials/3d/spatial_material.rst:448 msgid "" "Triplanar mapping is supported for both UV1 and UV2. This is an alternative " "way to obtain texture coordinates, sometimes called \"Autotexture\". " @@ -25749,17 +25833,17 @@ msgid "" "mapping can be performed in either world space or object space." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:443 +#: ../../docs/tutorials/3d/spatial_material.rst:453 msgid "" "In the image below, you can see how all primitives share the same material " "with world triplanar, so the brick texture continues smoothly between them." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:449 +#: ../../docs/tutorials/3d/spatial_material.rst:459 msgid "Proximity and distance fade" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:451 +#: ../../docs/tutorials/3d/spatial_material.rst:461 msgid "" "Godot allows materials to fade by proximity to each other as well as " "depending on the distance from the viewer. Proximity fade is useful for " @@ -25768,17 +25852,17 @@ msgid "" "only present after a given distance." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:457 +#: ../../docs/tutorials/3d/spatial_material.rst:467 msgid "" "Keep in mind enabling these enables alpha blending, so abusing them for an " "entire scene is usually not a good idea." msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:463 +#: ../../docs/tutorials/3d/spatial_material.rst:473 msgid "Render priority" msgstr "" -#: ../../docs/tutorials/3d/spatial_material.rst:465 +#: ../../docs/tutorials/3d/spatial_material.rst:475 msgid "" "The rendering order of objects can be changed, although this is mostly " "useful for transparent objects (or opaque objects that perform depth draw " @@ -25898,7 +25982,8 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:50 msgid "" "**Contact**: Performs a short screen-space raycast to reduce the gap " -"generated by the bias." +"generated by the bias. Contact shadows are only available when using the " +"GLES3 backend." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:51 @@ -26315,7 +26400,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/3d/reflection_probes.rst:65 -#: ../../docs/tutorials/3d/gi_probes.rst:84 +#: ../../docs/tutorials/3d/gi_probes.rst:88 msgid "Interior vs exterior" msgstr "" @@ -26390,13 +26475,20 @@ msgstr "" #: ../../docs/tutorials/3d/gi_probes.rst:9 msgid "" +"This feature is only available when using the GLES3 backend. :ref:" +"`doc_baked_lightmaps` can be used as an alternative when using the GLES2 " +"renderer." +msgstr "" + +#: ../../docs/tutorials/3d/gi_probes.rst:13 +msgid "" "Just like with :ref:`doc_reflection_probes`, and as stated in the :ref:" "`doc_spatial_material`, objects can show reflected or diffuse light. GI " "Probes are similar to Reflection Probes, but they use a different and more " "complex technique to produce indirect light and reflections." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:14 +#: ../../docs/tutorials/3d/gi_probes.rst:18 msgid "" "The strength of GI Probes is real-time, high quality, indirect light. While " "the scene needs a quick pre-bake for the static objects that will be used, " @@ -26405,30 +26497,30 @@ msgid "" "indirect lighting from the scene automatically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:20 +#: ../../docs/tutorials/3d/gi_probes.rst:24 msgid "" "Just like with ``ReflectionProbe``, ``GIProbe`` can be blended (in a bit " "more limited way), so it is possible to provide full real-time lighting for " "a stage without having to resort to lightmaps." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:24 +#: ../../docs/tutorials/3d/gi_probes.rst:28 msgid "The main downsides of ``GIProbe`` are:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:26 +#: ../../docs/tutorials/3d/gi_probes.rst:30 msgid "" "A small amount of light leaking can occur if the level is not carefully " "designed. This must be artist-tweaked." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:27 +#: ../../docs/tutorials/3d/gi_probes.rst:31 msgid "" "Performance requirements are higher than for lightmaps, so it may not run " "properly in low-end integrated GPUs (may need to reduce resolution)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:28 +#: ../../docs/tutorials/3d/gi_probes.rst:32 msgid "" "Reflections are voxelized, so they don't look as sharp as with " "``ReflectionProbe``. However, in exchange they are volumetric, so any room " @@ -26436,63 +26528,63 @@ msgid "" "works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:29 +#: ../../docs/tutorials/3d/gi_probes.rst:33 msgid "" "They consume considerably more video memory than Reflection Probes, so they " "must be used with care in the right subdivision sizes." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:34 +#: ../../docs/tutorials/3d/gi_probes.rst:38 msgid "" "Just like a ``ReflectionProbe``, simply set up the ``GIProbe`` by wrapping " "it around the geometry that will be affected." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:39 +#: ../../docs/tutorials/3d/gi_probes.rst:43 msgid "" "Afterwards, make sure to enable the geometry will be baked. This is " "important in order for ``GIProbe`` to recognize objects, otherwise they will " "be ignored:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:44 +#: ../../docs/tutorials/3d/gi_probes.rst:48 msgid "" "Once the geometry is set up, push the Bake button that appears on the 3D " "editor toolbar to begin the pre-baking process:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:50 +#: ../../docs/tutorials/3d/gi_probes.rst:54 msgid "Adding lights" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:52 +#: ../../docs/tutorials/3d/gi_probes.rst:56 msgid "" "Unless there are materials with emission, ``GIProbe`` does nothing by " "default. Lights need to be added to the scene to have an effect." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:55 +#: ../../docs/tutorials/3d/gi_probes.rst:59 msgid "" "The effect of indirect light can be viewed quickly (it is recommended you " "turn off all ambient/sky lighting to tweak this, though, as shown below):" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:60 +#: ../../docs/tutorials/3d/gi_probes.rst:64 msgid "" "In some situations, though, indirect light may be too weak. Lights have an " "indirect multiplier to tweak this:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:65 +#: ../../docs/tutorials/3d/gi_probes.rst:69 msgid "" "And, as ``GIProbe`` lighting updates in real-time, this effect is immediate:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:70 +#: ../../docs/tutorials/3d/gi_probes.rst:74 msgid "Reflections" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:72 +#: ../../docs/tutorials/3d/gi_probes.rst:76 msgid "" "For very metallic materials with low roughness, it's possible to appreciate " "voxel reflections. Keep in mind that these have far less detail than " @@ -26500,82 +26592,82 @@ msgid "" "volumetrically." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:78 +#: ../../docs/tutorials/3d/gi_probes.rst:82 msgid "" "``GIProbe``\\ s can be easily mixed with Reflection Probes and Screen Space " "Reflections, as a full 3-stage fallback-chain. This allows to have precise " "reflections where needed:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:86 +#: ../../docs/tutorials/3d/gi_probes.rst:90 msgid "" "GI Probes normally allow mixing with lighting from the sky. This can be " "disabled when turning on the *Interior* setting." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:91 +#: ../../docs/tutorials/3d/gi_probes.rst:95 msgid "" "The difference becomes clear in the image below, where light from the sky " "goes from spreading inside to being ignored." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:96 +#: ../../docs/tutorials/3d/gi_probes.rst:100 msgid "" "As complex buildings may mix interiors with exteriors, combining GIProbes " "for both parts works well." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:100 +#: ../../docs/tutorials/3d/gi_probes.rst:104 msgid "Tweaking" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:102 +#: ../../docs/tutorials/3d/gi_probes.rst:106 msgid "GI Probes support a few parameters for tweaking:" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:106 +#: ../../docs/tutorials/3d/gi_probes.rst:110 msgid "" "**Subdiv** Subdivision used for the probe. The default (128) is generally " "good for small- to medium-sized areas. Bigger subdivisions use more memory." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:107 +#: ../../docs/tutorials/3d/gi_probes.rst:111 msgid "**Extents** Size of the probe. Can be tweaked from the gizmo." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:108 +#: ../../docs/tutorials/3d/gi_probes.rst:112 msgid "" "**Dynamic Range** Maximum light energy the probe can absorb. Higher values " "allow brighter light, but with less color detail." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:109 +#: ../../docs/tutorials/3d/gi_probes.rst:113 msgid "" "**Energy** Multiplier for all the probe. Can be used to make the indirect " "light brighter (although it's better to tweak this from the light itself)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:110 +#: ../../docs/tutorials/3d/gi_probes.rst:114 msgid "**Propagation** How much light propagates through the probe internally." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:111 +#: ../../docs/tutorials/3d/gi_probes.rst:115 msgid "" "**Bias** Value used to avoid self-occlusion when doing voxel cone tracing, " "should generally be above 1.0 (1==voxel size)." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:112 +#: ../../docs/tutorials/3d/gi_probes.rst:116 msgid "" "**Normal Bias** Alternative type of bias useful for some scenes. Experiment " "with this one if regular bias does not work." msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:115 +#: ../../docs/tutorials/3d/gi_probes.rst:119 msgid "Quality" msgstr "" -#: ../../docs/tutorials/3d/gi_probes.rst:117 +#: ../../docs/tutorials/3d/gi_probes.rst:121 msgid "" "``GIProbe``\\ s are quite demanding. It is possible to use lower quality " "voxel cone tracing in exchange for more performance." @@ -27172,7 +27264,7 @@ msgstr "" msgid "Tonemap" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:139 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:141 msgid "" "Selects the tone-mapping curve that will be applied to the scene, from a " "short list of standard curves used in the film and game industry. Tone " @@ -27180,28 +27272,28 @@ msgid "" "result is not that strong. Tone mapping options are:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:144 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 msgid "" "**Mode:** Tone mapping mode, which can be Linear, Reindhart, Filmic, or Aces." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:145 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:147 msgid "" "**Exposure:** Tone mapping exposure which simulates amount of light received " "over time." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:146 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:148 msgid "" "**White:** Tone mapping white, which simulates where in the scale white is " "located (by default 1.0)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:149 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 msgid "Auto Exposure (HDR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:151 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:155 msgid "" "Even though, in most cases, lighting and texturing are heavily artist " "controlled, Godot supports a simple high dynamic range implementation with " @@ -27211,7 +27303,7 @@ msgid "" "locations and their different amounts of light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:160 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:164 msgid "" "The simplest way to use auto exposure is to make sure outdoor lights (or " "other strong lights) have energy beyond 1.0. This is done by tweaking their " @@ -27221,57 +27313,57 @@ msgid "" "simulate indoor-outdoor conditions." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:166 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:170 msgid "" "By combining Auto Exposure with *Glow* post processing (more on that below), " "pixels that go over the tonemap **White** will bleed to the glow buffer, " "creating the typical bloom effect in photography." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:172 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:176 msgid "" "The user-controllable values in the Auto Exposure section come with sensible " "defaults, but you can still tweak them:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:177 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:181 msgid "" "**Scale:** Value to scale the lighting. Brighter values produce brighter " "images, smaller ones produce darker ones." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:178 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:182 msgid "" "**Min Luma:** Minimum luminance that auto exposure will aim to adjust for. " "Luminance is the average of the light in all the pixels of the screen." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:179 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 msgid "" "**Max Luma:** Maximum luminance that auto exposure will aim to adjust for." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:180 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:184 msgid "" "**Speed:** Speed at which luminance corrects itself. The higher the value, " "the faster correction happens." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:183 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:187 msgid "Mid- and post-processing effects" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:185 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 msgid "" "A large amount of widely-used mid- and post-processing effects are supported " "in the Environment." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:189 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:193 msgid "Screen-Space Reflections (SSR)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:191 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:197 msgid "" "While Godot supports three sources of reflection data (Sky, ReflectionProbe, " "and GIProbe), they may not provide enough detail for all situations. " @@ -27280,7 +27372,7 @@ msgid "" "floating on water, etc)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:198 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 msgid "" "The other advantage (even if only enabled to a minimum), is that it works in " "real-time (while the other types of reflections are pre-computed). This can " @@ -27288,52 +27380,52 @@ msgid "" "moving around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:202 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 msgid "" "A few user-controlled parameters are available to better tweak the technique:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:204 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 msgid "" "**Max Steps** determines the length of the reflection. The bigger this " "number, the more costly it is to compute." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:205 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:211 msgid "" "**Fade In** allows adjusting the fade-in curve, which is useful to make the " "contact area softer." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:206 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:212 msgid "" "**Fade Out** allows adjusting the fade-out curve, so the step limit fades " "out softly." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:207 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 msgid "" "**Depth Tolerance** can be used for screen-space-ray hit tolerance to gaps. " "The bigger the value, the more gaps will be ignored." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:208 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:214 msgid "" "**Roughness** will apply a screen-space blur to approximate roughness in " "objects with this material characteristic." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:210 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:216 msgid "" "Keep in mind that screen-space-reflections only work for reflecting opaque " "geometry. Transparent objects can't be reflected." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:213 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:219 msgid "Screen-Space Ambient Occlusion (SSAO)" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:215 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:223 msgid "" "As mentioned in the **Ambient** section, areas where light from light nodes " "does not reach (either because it's outside the radius or shadowed) are lit " @@ -27343,28 +27435,28 @@ msgid "" "at the smaller geometry level." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:222 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:230 msgid "" "Constant ambient color and Sky are the same everywhere, while GI and " "Reflection probes have more local detail, but not enough to simulate " "situations where light is not able to fill inside hollow or concave features." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:226 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:234 msgid "" "This can be simulated with Screen Space Ambient Occlusion. As you can see in " "the image below, its purpose is to make sure concave areas are darker, " "simulating a narrower path for the light to enter:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:232 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:240 msgid "" "It is a common mistake to enable this effect, turn on a light, and not be " "able to appreciate it. This is because SSAO only acts on *ambient* light, " "not direct light." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:235 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 msgid "" "This is why, in the image above, the effect is less noticeable under the " "direct light (on the left). If you want to force SSAO to work with direct " @@ -27372,47 +27464,47 @@ msgid "" "correct, some artists like how it looks)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:239 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 msgid "" "SSAO looks best when combined with a real source of indirect light, like " "GIProbe:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:243 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 msgid "Tweaking SSAO is possible with several parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:247 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:255 msgid "" "**Radius/Intensity:** To control the radius or intensity of the occlusion, " "these two parameters are available. Radius is in world (Metric) units." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:248 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 msgid "" "**Radius2/Intensity2:** A Secondary radius/intensity can be used. Combining " "a large and a small radius AO generally works well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:249 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:257 msgid "" "**Bias:** This can be tweaked to solve self occlusion, though the default " "generally works well enough." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:250 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 msgid "" "**Light Affect:** SSAO only affects ambient light, but increasing this " "slider can make it also affect direct light. Some artists prefer this effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:251 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:259 msgid "" "**Quality:** Depending on quality, SSAO will take more samples over a sphere " "for every pixel. High quality only works well on modern GPUs." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:252 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:260 msgid "" "**Blur:** Type of blur kernel used. The 1x1 kernel is a simple blur that " "preserves local detail better, but is not as efficient (generally works " @@ -27421,65 +27513,65 @@ msgid "" "detail as well." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:253 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:261 msgid "" "**Edge Sharpness**: This can be used to preserve the sharpness of edges " "(avoids areas without AO on creases)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:256 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 msgid "Depth of Field / Far Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:258 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "behind a given range. It has an initial **Distance** with a **Transition** " "region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:264 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:276 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:274 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:288 msgid "" "The **Amount** parameter controls the amount of blur. For larger blurs, " "tweaking the **Quality** may be needed in order to avoid artifacts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:268 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:278 msgid "Depth of Field / Near Blur" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:270 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:282 msgid "" "This effect simulates focal distance on high end cameras. It blurs objects " "close to the camera (acts in the opposite direction as far blur). It has an " "initial **Distance** with a **Transition** region (in world units):" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:279 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:291 msgid "" "It is common to use both blurs together to focus the viewer's attention on a " "given object:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:285 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:297 msgid "Glow" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:287 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:301 msgid "" "In photography and film, when light amount exceeds the maximum supported by " "the media (be it analog or digital), it generally bleeds outwards to darker " "regions of the image. This is simulated in Godot with the **Glow** effect." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:293 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:307 msgid "" "By default, even if the effect is enabled, it will be weak or invisible. One " "of two conditions need to happen for it to actually show:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:296 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:310 msgid "" "The light in a pixel surpasses the **HDR Threshold** (where 0 is all light " "surpasses it, and 1.0 is light over the tonemapper **White** value). " @@ -27489,27 +27581,27 @@ msgid "" "threshold." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:300 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 msgid "" "The Bloom effect has a value set greater than 0. As it increases, it sends " "the whole screen to the glow processor at higher amounts." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:304 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 msgid "Both will cause the light to start bleeding out of the brighter areas." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:306 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:320 msgid "Once glow is visible, it can be controlled with a few extra parameters:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:308 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:322 msgid "" "**Intensity** is an overall scale for the effect, it can be made stronger or " "weaker (0.0 removes it)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:309 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:323 msgid "" "**Strength** is how strong the gaussian filter kernel is processed. Greater " "values make the filter saturate and expand outwards. In general, changing " @@ -27517,78 +27609,78 @@ msgid "" "**Levels**." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:311 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:325 msgid "The **Blend Mode** of the effect can also be changed:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:313 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:327 msgid "" "**Additive** is the strongest one, as it just adds the glow effect over the " "image with no blending involved. In general, it's too strong to be used, but " "can look good with low intensity Bloom (produces a dream-like effect)." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:314 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:328 msgid "" "**Screen** is the default one. It ensures glow never brights more than " "itself and works great as an all around." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:315 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 msgid "" "**Softlight** is the weakest one, producing only a subtle color disturbance " "around the objects. This mode works best on dark scenes." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:316 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:330 msgid "" "**Replace** can be used to blur the whole screen or debug the effect. It " "just shows the glow effect without the image below." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:318 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:332 msgid "" "To change the glow effect size and shape, Godot provides **Levels**. Smaller " "levels are strong glows that appear around objects, while large levels are " "hazy glows covering the whole screen:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:324 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 msgid "" "The real strength of this system, though, is to combine levels to create " "more interesting glow patterns:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:329 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 msgid "" "Finally, as the highest layers are created by stretching small blurred " "images, it is possible that some blockiness may be visible. Enabling " "**Bicubic Upscaling** gets rids of it, at a minimal performance cost." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:336 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:350 msgid "Adjustments" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:338 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:354 msgid "" "At the end of processing, Godot offers the possibility to do some standard " "image adjustments." msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:343 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:359 msgid "" "The first one is being able to change the typical Brightness, Contrast, and " "Saturation:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:348 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:364 msgid "" "The second is by supplying a color correction gradient. A regular black to " "white gradient like the following one will produce no effect:" msgstr "" -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:353 +#: ../../docs/tutorials/3d/environment_and_post_processing.rst:369 msgid "" "But creating custom ones will allow to map each channel to a different color:" msgstr "" @@ -28829,23 +28921,23 @@ msgid "" "with the mouse, and jump. Add the following code to ``Player.gd``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:373 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 msgid "This is a lot of code, so let's break it down function by function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:375 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:377 msgid "" "While copy and pasting code is ill advised, as you can learn a lot from " "manually typing the code in, you can copy and paste the code from this page " "directly into the script editor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:378 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 msgid "" "If you do this, all of the code copied will be using spaces instead of tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:380 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:382 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 " @@ -28853,90 +28945,90 @@ msgid "" "spaces." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:385 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 msgid "" "First, we define some class variables to dictate how our player will move " "about the world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:387 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:389 msgid "" "Throughout this tutorial, **variables defined outside functions will be " "referred to as \"class variables\"**. This is because we can access any of " "these variables from any place in the script." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:391 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 msgid "Let's go through each of the class variables:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:393 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 msgid "``GRAVITY``: How strong gravity pulls us down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:394 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 msgid "``vel``: Our :ref:`KinematicBody `'s velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:395 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 msgid "" "``MAX_SPEED``: The fastest speed we can reach. Once we hit this speed, we " "will not go any faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:396 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 msgid "``JUMP_SPEED``: How high we can jump." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:397 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 msgid "" "``ACCEL``: How quickly we accelerate. The higher the value, the sooner we " "get to max speed." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:398 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 msgid "" "``DEACCEL``: How quickly we are going to decelerate. The higher the value, " "the sooner we will come to a complete stop." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:399 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 msgid "" "``MAX_SLOPE_ANGLE``: The steepest angle our :ref:`KinematicBody " "` will consider as a 'floor'." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:400 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 msgid "``camera``: The :ref:`Camera ` node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:401 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:403 msgid "" "``rotation_helper``: A :ref:`Spatial ` node holding " "everything we want to rotate on the X axis (up and down)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:402 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 msgid "" "``MOUSE_SENSITIVITY``: How sensitive the mouse is. I find a value of " "``0.05`` works well for my mouse, but you may need to change it based on how " "sensitive your mouse is." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:404 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:406 msgid "" "You can tweak many of these variables to get different results. For example, " "by lowering ``GRAVITY`` and/or increasing ``JUMP_SPEED`` you can get a more " "'floaty' feeling character. Feel free to experiment!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:408 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 msgid "" "You may have noticed that ``MOUSE_SENSITIVITY`` is written in all caps like " "the other constants, but ``MOUSE_SENSITIVITY`` is not a constant." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:410 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:412 msgid "" "The reason behind this is we want to treat it like a constant variable (a " "variable that cannot change) throughout our script, but we want to be able " @@ -28945,30 +29037,30 @@ msgid "" "caps." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:415 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 msgid "Now let's look at the ``_ready`` function:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:417 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 msgid "" "First we get the ``camera`` and ``rotation_helper`` nodes and store them " "into their variables." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:419 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 msgid "" "Then we need to set the mouse mode to captured, so the mouse cannot leave " "the game window." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:421 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:423 msgid "" "This will hide the mouse and keep it at the center of the screen. We do this " "for two reasons: The first reason being we do not want the player to see " "their mouse cursor as they play." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:424 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:426 msgid "" "The second reason is because we do not want the cursor to leave the game " "window. If the cursor leaves the game window there could be instances where " @@ -28976,120 +29068,120 @@ msgid "" "assure neither of these issues happens, we capture the mouse cursor." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:428 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:430 msgid "" "see :ref:`Input documentation ` for the various mouse modes. We " "will only be using ``MOUSE_MODE_CAPTURED`` and ``MOUSE_MODE_VISIBLE`` in " "this tutorial series." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:433 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 msgid "Next let's take a look at ``_physics_process``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:435 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 msgid "" "All we're doing in ``_physics_process`` is calling two functions: " "``process_input`` and ``process_movement``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:437 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:439 msgid "" "``process_input`` will be where we store all the code relating to player " "input. We want to call it first, before anything else, so we have fresh " "player input to work with." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:440 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:442 msgid "" "``process_movement`` is where we'll send all the data necessary to the :ref:" "`KinematicBody ` so it can move through the game world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:445 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 msgid "Let's look at ``process_input`` next:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:447 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 msgid "First we set ``dir`` to an empty :ref:`Vector3 `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:449 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:451 msgid "" "``dir`` will be used for storing the direction the player intends to move " "towards. Because we do not want the player's previous input to effect the " "player beyond a single ``process_movement`` call, we reset ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:452 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 msgid "" "Next we get the camera's global transform and store it as well, into the " "``cam_xform`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:454 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:456 msgid "" "The reason we need the camera's global transform is so we can use its " "directional vectors. Many have found directional vectors confusing, so let's " "take a second to explain how they work:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:459 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:461 msgid "" "World space can be defined as: The space in which all objects are placed in, " "relative to a constant origin point. Every object, no matter if it is 2D or " "3D, has a position in world space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:462 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:464 msgid "" "To put it another way: world space is the space in a universe where every " "object's position, rotation, and scale can be measured by a single, known, " "fixed point called the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:465 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 msgid "" "In Godot, the origin is at position ``(0, 0, 0)`` with a rotation of ``(0, " "0, 0)`` and a scale of ``(1, 1, 1)``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:467 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:469 msgid "" "When you open up the Godot editor and select a :ref:`Spatial " "` based node, a gizmo pops up. Each of the arrows points " "using world space directions by default." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:470 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:472 msgid "" "If you want to move using the world space directional vectors, you'd do " "something like this:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:495 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:497 msgid "" "Notice how we do not need to do any calculations to get world space " "directional vectors. We can define a few :ref:`Vector3 ` " "variables and input the values pointing in each direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:498 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 msgid "Here is what world space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:500 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:502 msgid "" "The following images are just examples. Each arrow/rectangle represents a " "directional vector" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:504 -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:559 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:506 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:561 msgid "And here is what it looks like for 3D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:508 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:510 msgid "" "Notice how in both examples, the rotation of the node does not change the " "directional arrows. This is because world space is a constant. No matter how " @@ -29097,13 +29189,13 @@ msgid "" "the same direction*." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:512 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 msgid "" "Local space is different, because it takes the rotation of the object into " "account." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:514 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:516 msgid "" "Local space can be defined as follows: The space in which an object's " "position is the origin of the universe. Because the position of the origin " @@ -29111,44 +29203,44 @@ msgid "" "with the position of the origin." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:519 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 msgid "" "This stack overflow question has a much better explanation of world space " "and local space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:521 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:523 msgid "" "https://gamedev.stackexchange.com/questions/65783/what-are-world-space-and-" "eye-space-in-game-development (Local space and eye space are essentially the " "same thing in this context)" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:524 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:526 msgid "" "To get a :ref:`Spatial ` node's local space, we need to get " "its :ref:`Transform `, so then we can get the :ref:`Basis " "` from the :ref:`Transform `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:527 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:529 msgid "" "Each :ref:`Basis ` has three vectors: ``X``, ``Y``, and ``Z``. " "Each of those vectors point towards each of the local space vectors coming " "from that object." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:530 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:532 msgid "" "To use the :ref:`Spatial ` node's local directional vectors, " "we use this code:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:555 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:557 msgid "Here is what local space looks like in 2D:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:563 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:565 msgid "" "Here is what the :ref:`Spatial ` gizmo shows when you are " "using local space mode. Notice how the arrows follow the rotation of the " @@ -29156,14 +29248,14 @@ msgid "" "space." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:567 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:569 msgid "" "You can change between local and world space modes by pressing T or the " "little cube button when you have a :ref:`Spatial ` based node " "selected." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:572 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:574 msgid "" "Local vectors are confusing even for more experienced game developers, so do " "not worry if this all doesn't make a lot of sense. The key thing to remember " @@ -29172,37 +29264,37 @@ msgid "" "give direction from the world's point of view." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:578 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 msgid "Okay, back to ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:580 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:582 msgid "" "Next we make a new variable called ``input_movement_vector`` and assign it " "to an empty :ref:`Vector2 `. We will use this to make a " "virtual axis of sorts, to map the player's input to movement." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:583 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 msgid "" "This may seem overkill for just the keyboard, but this will make sense later " "when we add joypad input." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:585 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 msgid "" "Based on which directional movement action is pressed, we add to or subtract " "from ``input_movement_vector``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:587 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:589 msgid "" "After we've checked each of the directional movement actions, we normalize " "``input_movement_vector``. This makes it where ``input_movement_vector``'s " "values are within a ``1`` radius unit circle." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:590 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:592 msgid "" "Next we add the camera's local ``Z`` vector times ``input_movement_vector." "y`` to ``dir``. This is so when the player presses forward or backwards, we " @@ -29210,7 +29302,7 @@ msgid "" "in relation to the camera." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:593 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:595 msgid "" "Because the camera is rotated by ``-180`` degrees, we have to flip the ``Z`` " "directional vector. Normally forward would be the positive Z axis, so using " @@ -29219,7 +29311,7 @@ msgid "" "the rest of the player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:598 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:600 msgid "" "We do the same thing for the camera's local ``X`` vector, and instead of " "using ``input_movement_vector.y`` we instead use ``input_movement_vector." @@ -29227,7 +29319,7 @@ msgid "" "camera when the player presses left/right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:601 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:603 msgid "" "Next we check if the player is on the floor using :ref:`KinematicBody " "`'s ``is_on_floor`` function. If it is, then we check " @@ -29235,12 +29327,12 @@ msgid "" "then we set the player's ``Y`` velocity to ``JUMP_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:605 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 msgid "" "Because we're setting the Y velocity, the player will jump into the air." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:607 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:609 msgid "" "Then we check for the ``ui_cancel`` action. This is so we can free/capture " "the mouse cursor when the ``escape`` button is pressed. We do this because " @@ -29248,30 +29340,30 @@ msgid "" "until you terminate the runtime." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:611 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 msgid "" "To free/capture the cursor, we check to see if the mouse is visible (freed) " "or not. If it is, we capture it, and if it's not, we make it visible (free " "it)." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:613 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:615 msgid "" "That's all we're doing right now for ``process_input``. We'll come back " "several times to this function as we add more complexities to our player." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:617 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 msgid "Now let's look at ``process_movement``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:619 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 msgid "" "First we ensure that ``dir`` does not have any movement on the ``Y`` axis by " "setting it's ``Y`` value to zero." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:621 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:623 msgid "" "Next we normalize ``dir`` to ensure we're within a ``1`` radius unit circle. " "This makes it where we're moving at a constant speed regardless of whether " @@ -29279,30 +29371,30 @@ msgid "" "player would move faster on the diagonal than when going straight." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:624 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 msgid "" "Next we add gravity to the player by adding ``GRAVITY * delta`` to the " "player's ``Y`` velocity." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:626 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 msgid "" "After that we assign the player's velocity to a new variable (called " "``hvel``) and remove any movement on the ``Y`` axis." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:628 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:630 msgid "" "Next we set a new variable (``target``) to the player's direction vector. " "Then we multiply that by the player's max speed so we know how far the " "player will move in the direction provided by ``dir``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:631 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 msgid "After that we make a new variable for acceleration, named ``accel``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:633 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:635 msgid "" "We then take the dot product of ``hvel`` to see if the player is moving " "according to ``hvel``. Remember, ``hvel`` does not have any ``Y`` velocity, " @@ -29310,14 +29402,14 @@ msgid "" "left, or right." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:637 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:639 msgid "" "If the player is moving according to ``hvel``, then we set ``accel`` to the " "``ACCEL`` constant so the player will accelerate, otherwise we set ``accel`` " "to our ``DEACCEL`` constant so the player will decelerate." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:640 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:642 msgid "" "Then we interpolate the horizontal velocity, set the player's ``X`` and " "``Z`` velocity to the interpolated horizontal velocity, and call " @@ -29325,86 +29417,86 @@ msgid "" "handle moving the player through the physics world." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:643 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:645 msgid "" "All of the code in ``process_movement`` is exactly the same as the movement " "code from the Kinematic Character demo!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:647 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 msgid "" "The final function we have is the ``_input`` function, and thankfully it's " "fairly short:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:649 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:651 msgid "" "First we make sure that the event we are dealing with is an :ref:" "`InputEventMouseMotion ` event. We also want to " "check if the cursor is captured, as we do not want to rotate if it is not." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:652 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:654 msgid "" "See :ref:`Mouse and input coordinates ` for " "a list of possible input events." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:655 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:657 msgid "" "If the event is indeed a mouse motion event and the cursor is captured, we " "rotate based on the relative mouse motion provided by :ref:" "`InputEventMouseMotion `." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:658 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:660 msgid "" "First we rotate the ``rotation_helper`` node on the ``X`` axis, using the " "relative mouse motion's ``Y`` value, provided by :ref:`InputEventMouseMotion " "`." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:661 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 msgid "" "Then we rotate the entire :ref:`KinematicBody ` on the " "``Y`` axis by the relative mouse motion's ``X`` value." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:663 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:665 msgid "" "Godot converts relative mouse motion into a :ref:`Vector2 ` " "where mouse movement going up and down is ``1`` and ``-1`` respectively. " "Right and Left movement is ``1`` and ``-1`` respectively." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:667 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:669 msgid "" "Because of how we are rotating the player, we multiply the relative mouse " "motion's ``X`` value by ``-1`` so mouse motion going left and right rotates " "the player left and right in the same direction." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:671 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:673 msgid "" "Finally, we clamp the ``rotation_helper``'s ``X`` rotation to be between " "``-70`` and ``70`` degrees so the player cannot rotate themselves upside " "down." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:674 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:676 msgid "" "See :ref:`using transforms ` for more information on " "rotating transforms." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:678 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:680 msgid "" "To test the code, open up the scene named ``Testing_Area.tscn``, if it's not " "already opened up. We will be using this scene as we go through the next few " "tutorial parts, so be sure to keep it open in one of your scene tabs." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:681 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:683 msgid "" "Go ahead and test your code either by pressing ``F6`` with ``Testing_Area." "tscn`` as the open tab, by pressing the play button in the top right corner, " @@ -29412,62 +29504,62 @@ msgid "" "air, and look around using the mouse." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:687 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 msgid "Giving the player a flash light and the option to sprint" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:689 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 msgid "" "Before we get to making the weapons work, there are a couple more things we " "should add." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:691 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:693 msgid "" "Many FPS games have an option to sprint and a flashlight. We can easily add " "these to our player, so let's do that!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:694 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:696 msgid "First we need a few more class variables in our player script:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:715 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:717 msgid "" "All the sprinting variables work exactly the same as the non sprinting " "variables with similar names." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:718 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:720 msgid "" "``is_sprinting`` is a boolean to track whether the player is currently " "sprinting, and ``flashlight`` is a variable we will be using to hold the " "player's flash light node." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:721 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:723 msgid "" "Now we need to add a few lines of code, starting in ``_ready``. Add the " "following to ``_ready``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:732 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:734 msgid "" "This gets the ``Flashlight`` node and assigns it to the ``flashlight`` " "variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:736 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:738 msgid "" "Now we need to change some of the code in ``process_input``. Add the " "following somewhere in ``process_input``:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:778 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 msgid "Let's go over the additions:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:780 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:782 msgid "" "We set ``is_sprinting`` to true when the player is holding down the " "``movement_sprint`` action, and false when the ``movement_sprint`` action is " @@ -29476,7 +29568,7 @@ msgid "" "change the ``is_sprinting`` variable." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:784 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:786 msgid "" "We do something similar to freeing/capturing the cursor for handling the " "flashlight. We first check to see if the ``flashlight`` action was just " @@ -29484,44 +29576,44 @@ msgid "" "scene tree. If it is, then we hide it, and if it's not, we show it." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:789 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:791 msgid "" "Now we need to change a couple things in ``process_movement``. First, " "replace ``target *= MAX_SPEED`` with the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:806 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:808 msgid "" "Now instead of always multiplying ``target`` by ``MAX_SPEED``, we first " "check to see if the player is sprinting or not. If the player is sprinting, " "we instead multiply ``target`` by ``MAX_SPRINT_SPEED``." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:809 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:811 msgid "" "Now all that's left is to change the acceleration when sprinting. Change " "``accel = ACCEL`` to the following:" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:826 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:828 msgid "" "Now, when the player is sprinting, we'll use ``SPRINT_ACCEL`` instead of " "``ACCEL``, which will accelerate the player faster." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:830 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 msgid "" "You should now be able to sprint if you press the ``shift`` button, and can " "toggle the flash light on and off by pressing the ``F`` button!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:832 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:834 msgid "" "Go try it out! You can change the sprint-related class variables to make the " "player faster or slower when sprinting!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:835 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:837 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1226 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:666 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:778 @@ -29531,32 +29623,32 @@ msgstr "" msgid "Final notes" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:839 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 msgid "" "Whew! That was a lot of work. Now you have a fully working first person " "character!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:841 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 msgid "" "In :ref:`doc_fps_tutorial_part_two` we will add some guns to our player " "character." msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:843 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 msgid "" "At this point we've recreated the Kinematic character demo from first person " "perspective with sprinting and a flash light!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:845 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:847 msgid "" "Currently the player script would be at an ideal state for making all sorts " "of first person games. For example: Horror games, platformer games, " "adventure games, and more!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:848 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1237 #: ../../docs/tutorials/3d/fps_tutorial/part_three.rst:681 #: ../../docs/tutorials/3d/fps_tutorial/part_four.rst:787 @@ -29566,7 +29658,7 @@ msgstr "" msgid "If you ever get lost, be sure to read over the code again!" msgstr "" -#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:850 +#: ../../docs/tutorials/3d/fps_tutorial/part_one.rst:852 msgid "" "You can download the finished project for this part here: :download:" "`Godot_FPS_Part_1.zip `" @@ -36859,7 +36951,7 @@ msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:9 msgid "" "In any application or game, sound and music playback will have a slight " -"delay. For games, this delay is often so small that is negligible. Sound " +"delay. For games, this delay is often so small that it is negligible. Sound " "effects will come out a few milliseconds after any play() function is " "called. For music this does not matter as in most games it does not interact " "with the gameplay." @@ -36870,99 +36962,99 @@ msgid "" "Still, for some games (mainly, rhythm games), it may be required to " "synchronize player actions with something happening in a song (usually in " "sync with the BPM). For this, having more precise timing information for an " -"exact playback position is very welcome." +"exact playback position is useful." msgstr "" #: ../../docs/tutorials/audio/sync_with_audio.rst:13 msgid "" -"Achieving very low playback timing precision is very difficult. This because " +"Achieving very low playback timing precision is difficult. This is because " "many factors are at play during audio playback:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +#: ../../docs/tutorials/audio/sync_with_audio.rst:15 msgid "" "Audio is mixed in chunks (not continuously), depending on the size of audio " "buffers used (check latency in project settings)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:17 -msgid "Audio has latency after mixed, it doesn't immediately play after mixed." +#: ../../docs/tutorials/audio/sync_with_audio.rst:16 +msgid "Mixed chunks of audio are not played immediately." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:18 +#: ../../docs/tutorials/audio/sync_with_audio.rst:17 msgid "Graphics APIs display two or three frames late." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:19 +#: ../../docs/tutorials/audio/sync_with_audio.rst:18 msgid "When playing on TVs, some delay may be added due to image processing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:21 +#: ../../docs/tutorials/audio/sync_with_audio.rst:20 msgid "" -"The most common way to reducing latency is to shrink the audio buffers " -"(again, by editing the latency setting in the project settings). The problem " -"is that when latency is too small, it will require considerably higher " -"amount of CPU for sound mixing. this increases the risk of skpping (a crack " -"in sound because a mix callback was lost)." +"The most common way to reduce latency is to shrink the audio buffers (again, " +"by editing the latency setting in the project settings). The problem is that " +"when latency is too small, sound mixing will require considerably more CPU. " +"This increases the risk of skipping (a crack in sound because a mix callback " +"was lost)." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:23 +#: ../../docs/tutorials/audio/sync_with_audio.rst:22 msgid "" -"This is common a tradeoff, so Godot ships with sensible defaults that should " -"not need to be commonly altered." +"This is a common tradeoff, so Godot ships with sensible defaults that should " +"not need to be altered." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:25 +#: ../../docs/tutorials/audio/sync_with_audio.rst:24 msgid "" -"The problem, in the end, is dealing with synchronization for games tha " -"require it, and not so much this slight delay. Beginning Godot 3.2, some " -"helpers were added to obtain more precise playback timing." +"The problem, in the end, is not this slight delay but synchronizing graphics " +"and audio for games that require it. Beginning with Godot 3.2, some helpers " +"were added to obtain more precise playback timing." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:28 +#: ../../docs/tutorials/audio/sync_with_audio.rst:27 msgid "Using the system clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:30 +#: ../../docs/tutorials/audio/sync_with_audio.rst:29 msgid "" "As mentioned before, If you call :ref:`AudioStreamPlayer." "play()`, sound will not begin " -"immediately, but when the audio thread processes the next block." +"immediately, but when the audio thread processes the next chunk." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:32 +#: ../../docs/tutorials/audio/sync_with_audio.rst:31 msgid "" "This delay can't be avoided but it can be estimated by calling :ref:" "`AudioServer." "get_time_to_next_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:34 +#: ../../docs/tutorials/audio/sync_with_audio.rst:33 msgid "" "The output latency (what happens after the mix) can also be estimated by " "calling :ref:`AudioServer." "get_output_latency()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:36 +#: ../../docs/tutorials/audio/sync_with_audio.rst:35 msgid "" "Add these two and it's possible to guess almost exactly when sound or music " "will begin playing in the speakers:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:44 +#: ../../docs/tutorials/audio/sync_with_audio.rst:43 msgid "" "This way, obtaining the actual playback position during *_process()* is " "possible:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:67 +#: ../../docs/tutorials/audio/sync_with_audio.rst:66 msgid "" "In the long run, though, as the sound hardware clock is never exactly in " "sync with the system clock, they timing information will slowly drift away." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:69 +#: ../../docs/tutorials/audio/sync_with_audio.rst:68 msgid "" "For a rhythm game where a song begins and ends after a few minutes, this " "approach is fine (and it's the recommended approach). For a game where " @@ -36970,11 +37062,11 @@ msgid "" "sync and a different approach is needed." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:72 +#: ../../docs/tutorials/audio/sync_with_audio.rst:71 msgid "Using the sound hardware clock to sync" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:74 +#: ../../docs/tutorials/audio/sync_with_audio.rst:73 msgid "" "Using :ref:`AudioStreamPlayer." "get_playback_position()` " @@ -36985,26 +37077,26 @@ msgid "" "of the previously mentioned reasons." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:76 +#: ../../docs/tutorials/audio/sync_with_audio.rst:75 msgid "" "To compensate for the \"chunked\" output, there is a function that can " "help: :ref:`AudioServer." "get_time_since_last_mix()`." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:79 +#: ../../docs/tutorials/audio/sync_with_audio.rst:78 msgid "" "Adding the return value from this function to *get_playback_position()* " "increases precision:" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:86 +#: ../../docs/tutorials/audio/sync_with_audio.rst:85 msgid "" "To increase precision, substract the latency information (how much it takes " "for the audio to be heard after it was mixed):" msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:93 +#: ../../docs/tutorials/audio/sync_with_audio.rst:92 msgid "" "The result may be a bit jittery due how multiple threads work. Just check " "that the value is not less than in the previous frame (discard it if so). " @@ -37013,7 +37105,7 @@ msgid "" "example) to music." msgstr "" -#: ../../docs/tutorials/audio/sync_with_audio.rst:95 +#: ../../docs/tutorials/audio/sync_with_audio.rst:94 msgid "Here is the same code as before using this approach:" msgstr "" @@ -37808,7 +37900,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:104 +#: ../../docs/development/compiling/compiling_with_mono.rst:103 msgid "Examples" msgstr "" @@ -43423,10 +43515,6 @@ msgid "" "If your game deals with real money, you need to be doing this anyway." msgstr "" -#: ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - #: ../../docs/tutorials/i18n/internationalizing_games.rst:4 msgid "Internationalizing games" msgstr "" @@ -52075,7 +52163,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:23 msgid "" -"Particle shaders are only available in the GLES3 renderer. If you need " +"Particle shaders are only available in the GLES3 backend. If you need " "particles in GLES2, use :ref:`CPUParticles `." msgstr "" @@ -62902,6 +62990,10 @@ msgid "" msgstr "" #: ../../docs/tutorials/misc/pausing_games.rst:53 +msgid "You can achieve the same result in code:" +msgstr "" + +#: ../../docs/tutorials/misc/pausing_games.rst:62 msgid "" "By default all nodes have this property in the \"Inherit\" state. This " "means, that they will only process (or not) depending on what this same " @@ -62912,52 +63004,52 @@ msgid "" "paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:61 +#: ../../docs/tutorials/misc/pausing_games.rst:70 msgid "So the three possible states for a node are:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:63 +#: ../../docs/tutorials/misc/pausing_games.rst:72 msgid "" "**Inherit**: Process depending on the state of the parent, grandparent, etc. " "The first parent that has a non-Inherit state." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:65 +#: ../../docs/tutorials/misc/pausing_games.rst:74 msgid "" "**Stop**: Stop the node no matter what (and children in Inherit mode). When " "paused this node will not process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:67 +#: ../../docs/tutorials/misc/pausing_games.rst:76 msgid "" "**Process**: Process the node no matter what (and children in Inherit mode). " "Paused or not this node will process." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:73 +#: ../../docs/tutorials/misc/pausing_games.rst:82 msgid "" "An example of this is creating a popup or panel with controls inside, and " "set its pause mode to \"Process\" then hide it:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:78 +#: ../../docs/tutorials/misc/pausing_games.rst:87 msgid "" "Just by setting the root of the pause popup to \"Process\", all children and " "grandchildren will inherit that state. This way, this branch of the scene " "tree will continue working when paused." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:82 +#: ../../docs/tutorials/misc/pausing_games.rst:91 msgid "" "Finally, make it so when a pause button is pressed (any button will do), " "enable the pause and show the pause screen." msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:100 +#: ../../docs/tutorials/misc/pausing_games.rst:109 msgid "To remove the pause, do the opposite when the pause screen is closed:" msgstr "" -#: ../../docs/tutorials/misc/pausing_games.rst:118 +#: ../../docs/tutorials/misc/pausing_games.rst:127 msgid "And that should be all!" msgstr "" @@ -64783,9 +64875,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:52 msgid "" -"Just printing the licensing text using a print() function may be enough on " -"platforms where a global output log is readable (as an example, mobile " -"devices)." +"Just printing the licensing text using a :ref:`print() " +"` function may be enough on platforms where a " +"global output log is readable (as an example, mobile devices)." msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:55 @@ -64814,7 +64906,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:67 msgid "" "Godot itself contains software written by `third parties `_. Most of it does not requiere " +"godotengine/godot/blob/master/COPYRIGHT.txt>`_. Most of it does not require " "license inclusion, but some do. Make sure to do it if you are using them. " "Here is a list of which ones require it:" msgstr "" @@ -64842,7 +64934,7 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:81 msgid "" -"If the project being creater is a multiplayer game using the `ENet `_ driver, ENet has similar licensing terms as Godot" msgstr "" @@ -64866,9 +64958,9 @@ msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:95 msgid "" -"If the is done with Godot 3.1 or above and it utilizes SSL (usually through " -"HTTP requests), the `MBedTLS `_ Apache license needs " -"to be complied by including the following text:" +"If the project is done with Godot 3.1 or above and it utilizes SSL (usually " +"through HTTP requests), the `MBedTLS `_ Apache license " +"needs to be complied by including the following text:" msgstr "" #: ../../docs/tutorials/legal/complying_with_licenses.rst:98 @@ -65273,7 +65365,7 @@ msgid "`SCons `__ build system." msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:23 -#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:25 #: ../../docs/development/compiling/compiling_for_osx.rst:19 #: ../../docs/development/compiling/compiling_for_android.rst:37 #: ../../docs/development/compiling/compiling_for_ios.rst:15 @@ -65559,7 +65651,7 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:203 -#: ../../docs/development/compiling/compiling_for_x11.rst:111 +#: ../../docs/development/compiling/compiling_for_x11.rst:106 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " @@ -65720,17 +65812,16 @@ msgid "" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:359 -#: ../../docs/development/compiling/compiling_for_x11.rst:33 msgid "**Arch**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:363 -#: ../../docs/development/compiling/compiling_for_x11.rst:37 +#: ../../docs/development/compiling/compiling_for_x11.rst:35 msgid "**Debian** / **Ubuntu**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:367 -#: ../../docs/development/compiling/compiling_for_x11.rst:43 +#: ../../docs/development/compiling/compiling_for_x11.rst:40 msgid "**Fedora**" msgstr "" @@ -65739,7 +65830,7 @@ msgid "**macOS**" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:375 -#: ../../docs/development/compiling/compiling_for_x11.rst:60 +#: ../../docs/development/compiling/compiling_for_x11.rst:56 msgid "**Mageia**" msgstr "" @@ -65812,7 +65903,7 @@ msgid "With the following names:" msgstr "" #: ../../docs/development/compiling/compiling_for_windows.rst:474 -#: ../../docs/development/compiling/compiling_for_x11.rst:153 +#: ../../docs/development/compiling/compiling_for_x11.rst:156 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 " @@ -65841,12 +65932,11 @@ msgid "GCC or Clang" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:15 -msgid "Python 2.7+ (Python 3 only supported as of SCons 3.0)" +msgid "Python 3 or 2.7+" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:16 -#: ../../docs/development/compiling/compiling_for_osx.rst:15 -msgid "SCons build system" +msgid "SCons build system (3.0 or later for Python 3)" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:17 @@ -65866,57 +65956,53 @@ msgid "ALSA development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:21 -msgid "PulseAudio development libraries (for sound support)" +msgid "PulseAudio development libraries" msgstr "" #: ../../docs/development/compiling/compiling_for_x11.rst:22 -msgid "Freetype (for the editor)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:23 -msgid "OpenSSL (for HTTPS and TLS)" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_x11.rst:24 msgid "*Optional* - libudev (build with ``udev=yes``)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:25 +#: ../../docs/development/compiling/compiling_for_x11.rst:23 #: ../../docs/development/compiling/compiling_for_osx.rst:17 msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:31 +#: ../../docs/development/compiling/compiling_for_x11.rst:29 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:49 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 +msgid "**Arch Linux**" +msgstr "" + +#: ../../docs/development/compiling/compiling_for_x11.rst:46 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:54 +#: ../../docs/development/compiling/compiling_for_x11.rst:51 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:66 +#: ../../docs/development/compiling/compiling_for_x11.rst:62 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:70 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:76 +#: ../../docs/development/compiling/compiling_for_x11.rst:71 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_x11.rst:80 #: ../../docs/development/compiling/compiling_for_osx.rst:25 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:91 +#: ../../docs/development/compiling/compiling_for_x11.rst:86 msgid "" "A good rule of thumb for the ``-j`` (*jobs*) flag, is to have at least as " "many threads compiling Godot as you have cores in your CPU, if not one or " @@ -65924,7 +66010,7 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_x11.rst:90 #: ../../docs/development/compiling/compiling_for_osx.rst:31 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" @@ -65932,57 +66018,66 @@ msgid "" "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:102 +#: ../../docs/development/compiling/compiling_for_x11.rst:97 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_x11.rst:103 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 #: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:113 +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:121 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:121 +#: ../../docs/development/compiling/compiling_for_x11.rst:124 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:128 +#: ../../docs/development/compiling/compiling_for_x11.rst:131 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:135 -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:138 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:141 +msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:144 +#: ../../docs/development/compiling/compiling_for_x11.rst:147 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:159 +#: ../../docs/development/compiling/compiling_for_x11.rst:162 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." +"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_osx.rst:4 @@ -65993,6 +66088,10 @@ msgstr "" msgid "Python 2.7+ or Python 3.5+" msgstr "" +#: ../../docs/development/compiling/compiling_for_osx.rst:15 +msgid "SCons build system" +msgstr "" + #: ../../docs/development/compiling/compiling_for_osx.rst:16 msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" @@ -66896,7 +66995,6 @@ msgid "MSBuild" msgstr "" #: ../../docs/development/compiling/compiling_with_mono.rst:13 -#: ../../docs/development/compiling/compiling_with_mono.rst:15 msgid "NuGet" msgstr "" @@ -66904,18 +67002,18 @@ msgstr "" msgid "pkg-config" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:17 +#: ../../docs/development/compiling/compiling_with_mono.rst:16 msgid "" "You may need to import necessary certificates for NuGet to perform HTTPS " "requests. You can do this with the following command (on Windows, you can " "run it from the Mono command line prompt):" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:25 +#: ../../docs/development/compiling/compiling_with_mono.rst:24 msgid "Environment variables" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:27 +#: ../../docs/development/compiling/compiling_with_mono.rst:26 msgid "" "By default, SCons will try to find Mono in the Windows Registry on Windows " "or via ``pkg-config`` on other platforms. You can specify a different " @@ -66923,27 +67021,27 @@ msgid "" "SCons; e.g.: ``scons [...] mono_prefix=%ProgramFiles%/Mono``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:31 +#: ../../docs/development/compiling/compiling_with_mono.rst:30 msgid "" "This is the directory that contains the subdirectories ``include`` and " "``lib``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:34 +#: ../../docs/development/compiling/compiling_with_mono.rst:33 msgid "Enable the Mono module" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:36 +#: ../../docs/development/compiling/compiling_with_mono.rst:35 msgid "" "By default, the mono module is disabled for builds. To enable it you can " "pass the option ``module_mono_enabled=yes`` to your SCons command." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:40 +#: ../../docs/development/compiling/compiling_with_mono.rst:39 msgid "Generate the glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:42 +#: ../../docs/development/compiling/compiling_with_mono.rst:41 msgid "" "The glue sources are the wrapper functions that will be called by managed " "methods. These source files must be generated before building your final " @@ -66951,21 +67049,21 @@ msgid "" "binary with the options ``tools=yes`` and ``mono_glue=no``:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:50 +#: ../../docs/development/compiling/compiling_with_mono.rst:49 msgid "" "After the build finishes, you need to run the compiled executable with the " "parameter ``--generate-mono-glue`` followed by the path to an output " "directory. This path must be ``modules/mono/glue`` in the Godot directory." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:58 +#: ../../docs/development/compiling/compiling_with_mono.rst:57 msgid "" "This command will tell Godot to generate the file ``modules/mono/glue/" "mono_glue.gen.cpp``. Once this file is generated, you can build Godot for " "all the desired targets without the need to repeat this process." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:61 +#: ../../docs/development/compiling/compiling_with_mono.rst:60 msgid "" "```` refers to the tools binary you compiled above with the " "Mono module enabled. Its exact name will differ based on your system and " @@ -66976,12 +67074,12 @@ msgid "" "without this suffix which can't be used to generate the Mono glue." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:68 +#: ../../docs/development/compiling/compiling_with_mono.rst:67 #: ../../docs/development/cpp/custom_godot_servers.rst:506 msgid "Notes" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:69 +#: ../../docs/development/compiling/compiling_with_mono.rst:68 msgid "" "**Do not** build your final binaries with ``mono_glue=no``. This disables C# " "scripting. This option must be used only for the temporary binary that will " @@ -66989,7 +67087,7 @@ msgid "" "without the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:72 +#: ../../docs/development/compiling/compiling_with_mono.rst:71 msgid "" "The glue sources must be regenerated every time the ClassDB registered API " "changes. That is, for example, when a new method is registered to the " @@ -66998,28 +67096,28 @@ msgid "" "the glue sources." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:78 +#: ../../docs/development/compiling/compiling_with_mono.rst:77 msgid "Rebuild with Mono glue" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:80 +#: ../../docs/development/compiling/compiling_with_mono.rst:79 msgid "" "Once you have generated the Mono glue, you can build the final binary with " "``mono_glue=yes``. It's the default value for ``mono_glue`` so you can also " "omit it. You can build the Mono-enabled editor:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:87 +#: ../../docs/development/compiling/compiling_with_mono.rst:86 msgid "And Mono-enabled export templates:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:93 +#: ../../docs/development/compiling/compiling_with_mono.rst:92 msgid "" "If everything went well, apart from the normal output SCons should have " "created the following files in the ``bin`` directory:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:95 +#: ../../docs/development/compiling/compiling_with_mono.rst:94 msgid "" "If you're not static linking the Mono runtime, the build script will place " "the Mono runtime shared library (``monosgen-2.0``) next next to the Godot " @@ -67029,7 +67127,7 @@ msgid "" "gradle takes care of the rest." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:98 +#: ../../docs/development/compiling/compiling_with_mono.rst:97 msgid "" "Unlike \"classical\" Godot builds, when building with the mono module " "enabled and depending of the target platform a data directory may be created " @@ -67039,19 +67137,19 @@ msgid "" "directory`." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:107 +#: ../../docs/development/compiling/compiling_with_mono.rst:106 msgid "Example (Windows)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:123 +#: ../../docs/development/compiling/compiling_with_mono.rst:122 msgid "Example (X11)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:141 +#: ../../docs/development/compiling/compiling_with_mono.rst:140 msgid "Data directory" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:143 +#: ../../docs/development/compiling/compiling_with_mono.rst:142 msgid "" "The data directory is a dependency for Godot binaries built with the mono " "module enabled. It contains files that are important for the correct " @@ -67060,7 +67158,7 @@ msgid "" "following information does not apply to that platform." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:150 +#: ../../docs/development/compiling/compiling_with_mono.rst:149 msgid "" "The name of the data directory for a export template differs based on the " "configuration it was built with. The format is ``data.mono..." @@ -67068,14 +67166,14 @@ msgid "" "release``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:153 +#: ../../docs/development/compiling/compiling_with_mono.rst:152 msgid "" "In the case of export templates the data directory only contains Mono " "framework assemblies and configuration files, as well as some shared library " "dependencies like ``MonoPosixHelper``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:156 +#: ../../docs/development/compiling/compiling_with_mono.rst:155 msgid "" "This directory must be placed with its original name next to the Godot " "export templates. When exporting a project, Godot will also copy this " @@ -67084,57 +67182,57 @@ msgid "" "in the project setting ``application/config/name``." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:161 +#: ../../docs/development/compiling/compiling_with_mono.rst:160 msgid "" "In the case of macOS, where the export template is compressed as a zip file, " "the contents of the data directory can be placed in the following locations " "inside the zip:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``bin/data.mono.../Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:165 +#: ../../docs/development/compiling/compiling_with_mono.rst:164 msgid "``/osx_template.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``bin/data.mono.../Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:167 +#: ../../docs/development/compiling/compiling_with_mono.rst:166 msgid "``/osx_template.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:173 +#: ../../docs/development/compiling/compiling_with_mono.rst:172 msgid "" "The name of the data directory for the Godot editor will always be " "``GodotSharp``. The main structure of this directory has the following " "subdirectories:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:176 +#: ../../docs/development/compiling/compiling_with_mono.rst:175 msgid "``Api`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:177 +#: ../../docs/development/compiling/compiling_with_mono.rst:176 msgid "``Mono`` (optional)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:178 +#: ../../docs/development/compiling/compiling_with_mono.rst:177 msgid "``Tools`` (required)" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:180 +#: ../../docs/development/compiling/compiling_with_mono.rst:179 msgid "" "The ``Tools`` subdirectory contains tools required by the editor, like the " "``GodotSharpTools`` assembly." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:182 +#: ../../docs/development/compiling/compiling_with_mono.rst:181 msgid "" "The ``Mono`` subdirectory is optional. It can be used to bundle the Mono " "framework assemblies and configuration files with the Godot editor, as well " @@ -67145,7 +67243,7 @@ msgid "" "passing the option ``copy_mono_root=yes`` when building the editor." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:188 +#: ../../docs/development/compiling/compiling_with_mono.rst:187 msgid "" "The ``Api`` directory is also optional. Godot API assemblies are not bundled " "with the editor by default. Instead the Godot editor will generate and build " @@ -67155,55 +67253,55 @@ msgid "" "generating and building them again." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:193 +#: ../../docs/development/compiling/compiling_with_mono.rst:192 msgid "" "The following is an example script for building and copying the Godot API " "assemblies:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:224 +#: ../../docs/development/compiling/compiling_with_mono.rst:223 msgid "" "The script assumes it's being executed from the directory where SConstruct " "is located. ```` refers to the tools binary compiled with the " "Mono module enabled." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:227 +#: ../../docs/development/compiling/compiling_with_mono.rst:226 msgid "" "In the case of macOS, if the Godot editor is distributed as a bundle, the " "contents of the data directory may be placed in the following locations:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``bin/data.mono.../Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:230 +#: ../../docs/development/compiling/compiling_with_mono.rst:229 msgid "``.app/Contents/Frameworks/GodotSharp/Api``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:232 +#: ../../docs/development/compiling/compiling_with_mono.rst:231 msgid "``.app/Contents/Frameworks/GodotSharp/Mono/lib``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:234 +#: ../../docs/development/compiling/compiling_with_mono.rst:233 msgid "``.app/Contents/Resources/GodotSharp/Mono/etc``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``bin/data.mono.../Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:236 +#: ../../docs/development/compiling/compiling_with_mono.rst:235 msgid "``.app/Contents/Frameworks/GodotSharp/Tools``" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:240 +#: ../../docs/development/compiling/compiling_with_mono.rst:239 #, fuzzy msgid "Targeting Android" msgstr "創建內容" -#: ../../docs/development/compiling/compiling_with_mono.rst:242 +#: ../../docs/development/compiling/compiling_with_mono.rst:241 msgid "" "Compiling the Android export templates with Mono is a bit simpler than it is " "for the desktop platforms, as there are no additional steps required after " @@ -67212,65 +67310,65 @@ msgid "" "are automatically added to the gradle project." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:247 +#: ../../docs/development/compiling/compiling_with_mono.rst:246 msgid "" "**Important:** You need to manually specify the mono version with the " "``MONO_VERSION`` environment variable." msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:249 +#: ../../docs/development/compiling/compiling_with_mono.rst:248 msgid "" "Before building Godot you do need to cross compile the Mono runtime for the " "target architectures. The easiest way to do this is to use the sdk Makefiles " "from the Mono repository. The following is an example bash script:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:252 +#: ../../docs/development/compiling/compiling_with_mono.rst:251 msgid "" "*Note: We plan to distribute prebuilt packages of the Mono runtime in the " "future so you don't have to build it yourself.*" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:314 +#: ../../docs/development/compiling/compiling_with_mono.rst:313 msgid "Command-line options" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:316 +#: ../../docs/development/compiling/compiling_with_mono.rst:315 msgid "" "The following is the list of command-line options available when building " "with the mono module:" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:318 +#: ../../docs/development/compiling/compiling_with_mono.rst:317 msgid "" "**module_mono_enabled**: Build Godot with the mono module enabled ( yes | " "**no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:320 +#: ../../docs/development/compiling/compiling_with_mono.rst:319 msgid "" "**mono_glue**: Whether to include the glue source files in the build and " "define `MONO_GLUE_DISABLED` as a preprocessor macro ( **yes** | no )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:322 +#: ../../docs/development/compiling/compiling_with_mono.rst:321 msgid "" "**mono_prefix**: Path to the Mono installation directory for the target " "platform and architecture" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:324 +#: ../../docs/development/compiling/compiling_with_mono.rst:323 msgid "" "**xbuild_fallback**: Whether to fallback to xbuild if MSBuild is not " "available ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:326 +#: ../../docs/development/compiling/compiling_with_mono.rst:325 msgid "" "**mono_static**: Whether to link the mono runtime statically ( yes | **no** )" msgstr "" -#: ../../docs/development/compiling/compiling_with_mono.rst:328 +#: ../../docs/development/compiling/compiling_with_mono.rst:327 msgid "" "**copy_mono_root**: Whether to copy the Mono framework assemblies and " "configuration files required by the Godot editor ( yes | **no** )" @@ -67401,7 +67499,7 @@ msgid "" "sure to sign your binaries or use a platform that will distribute them." msgstr "" -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:6 +#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:4 msgid "Compiling with script encryption key" msgstr ""